home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1996-05-01 | 177.3 KB | 7,142 lines | [ TEXT/MPS ]
; ; File: QuickTimeComponents.a ; ; Contains: QuickTime Interfaces. ; ; Version: Technology: QuickTime 2.1 ; Release: Universal Interfaces 3.0d3 on Copland DR1 ; ; Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved. ; ; Bugs?: If you find a problem with this file, send the file and version ; information (from above) and the problem description to: ; ; Internet: apple.bugs@applelink.apple.com ; AppleLink: APPLE.BUGS ; ; IF &TYPE('__QUICKTIMECOMPONENTS__') = 'UNDEFINED' THEN __QUICKTIMECOMPONENTS__ SET 1 IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN include 'Components.a' ENDIF IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN include 'ImageCompression.a' ENDIF IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN include 'Movies.a' ENDIF IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN include 'Quickdraw.a' ENDIF IF &TYPE('__VIDEO__') = 'UNDEFINED' THEN include 'Video.a' ENDIF IF &TYPE('__MEMORY__') = 'UNDEFINED' THEN include 'Memory.a' ENDIF IF &TYPE('__SOUND__') = 'UNDEFINED' THEN include 'Sound.a' ENDIF IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN clockComponentType EQU 'clok' systemTickClock EQU 'tick' ; subtype: 60ths since boot systemSecondClock EQU 'seco' ; subtype: seconds since 1904 systemMillisecondClock EQU 'mill' ; subtype: 1000ths since boot systemMicrosecondClock EQU 'micr' ; subtype: 1000000ths since boot kClockRateIsLinear EQU 1 kClockImplementsCallBacks EQU 2 ; * These are Clock procedures * ; ; pascal ComponentResult ClockGetTime(ComponentInstance aClock, TimeRecord *out) ; IF ¬ GENERATINGCFM THEN Macro _ClockGetTime move.l #$00040001,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockGetTime ENDIF ; ; pascal QTCallBack ClockNewCallBack(ComponentInstance aClock, TimeBase tb, short callBackType) ; IF ¬ GENERATINGCFM THEN Macro _ClockNewCallBack move.l #$00060002,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockNewCallBack ENDIF ; ; pascal ComponentResult ClockDisposeCallBack(ComponentInstance aClock, QTCallBack cb) ; IF ¬ GENERATINGCFM THEN Macro _ClockDisposeCallBack move.l #$00040003,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockDisposeCallBack ENDIF ; ; pascal ComponentResult ClockCallMeWhen(ComponentInstance aClock, QTCallBack cb, long param1, long param2, long param3) ; IF ¬ GENERATINGCFM THEN Macro _ClockCallMeWhen move.l #$00100004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockCallMeWhen ENDIF ; ; pascal ComponentResult ClockCancelCallBack(ComponentInstance aClock, QTCallBack cb) ; IF ¬ GENERATINGCFM THEN Macro _ClockCancelCallBack move.l #$00040005,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockCancelCallBack ENDIF ; ; pascal ComponentResult ClockRateChanged(ComponentInstance aClock, QTCallBack cb) ; IF ¬ GENERATINGCFM THEN Macro _ClockRateChanged move.l #$00040006,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockRateChanged ENDIF ; ; pascal ComponentResult ClockTimeChanged(ComponentInstance aClock, QTCallBack cb) ; IF ¬ GENERATINGCFM THEN Macro _ClockTimeChanged move.l #$00040007,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockTimeChanged ENDIF ; ; pascal ComponentResult ClockSetTimeBase(ComponentInstance aClock, TimeBase tb) ; IF ¬ GENERATINGCFM THEN Macro _ClockSetTimeBase move.l #$00040008,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockSetTimeBase ENDIF ; ; pascal ComponentResult ClockStartStopChanged(ComponentInstance aClock, QTCallBack cb, Boolean startChanged, Boolean stopChanged) ; IF ¬ GENERATINGCFM THEN Macro _ClockStartStopChanged move.l #$00080009,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockStartStopChanged ENDIF ; ; pascal ComponentResult ClockGetRate(ComponentInstance aClock, Fixed *rate) ; IF ¬ GENERATINGCFM THEN Macro _ClockGetRate move.l #$0004000A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION ClockGetRate ENDIF kClockGetTimeSelect EQU $01 kClockNewCallBackSelect EQU $02 kClockDisposeCallBackSelect EQU $03 kClockCallMeWhenSelect EQU $04 kClockCancelCallBackSelect EQU $05 kClockRateChangedSelect EQU $06 kClockTimeChangedSelect EQU $07 kClockSetTimeBaseSelect EQU $08 kClockStartStopChangedSelect EQU $09 kClockGetRateSelect EQU $0A ; ; General Sequence Grab stuff ; ; typedef ComponentInstance SeqGrabComponent ; typedef ComponentInstance SGChannel SeqGrabComponentType EQU 'barg' SeqGrabChannelType EQU 'sgch' SeqGrabPanelType EQU 'sgpn' SeqGrabCompressionPanelType EQU 'cmpr' SeqGrabSourcePanelType EQU 'sour' seqGrabToDisk EQU 1 seqGrabToMemory EQU 2 seqGrabDontUseTempMemory EQU 4 seqGrabAppendToFile EQU 8 seqGrabDontAddMovieResource EQU 16 seqGrabDontMakeMovie EQU 32 seqGrabPreExtendFile EQU 64 seqGrabDataProcIsInterruptSafe EQU 128 seqGrabDataProcDoesOverlappingReads EQU 256 ; typedef unsigned long SeqGrabDataOutputEnum seqGrabRecord EQU 1 seqGrabPreview EQU 2 seqGrabPlayDuringRecord EQU 4 ; typedef unsigned long SeqGrabUsageEnum seqGrabHasBounds EQU 1 seqGrabHasVolume EQU 2 seqGrabHasDiscreteSamples EQU 4 ; typedef unsigned long SeqGrabChannelInfoEnum SeqGrabFrameInfo RECORD 0 frameOffset ds.l 1 ; offset: $0 (0) frameTime ds.l 1 ; offset: $4 (4) frameSize ds.l 1 ; offset: $8 (8) frameChannel ds.l 1 ; offset: $C (12) frameRefCon ds.l 1 ; offset: $10 (16) sizeof EQU * ; size: $14 (20) ENDR ; typedef struct SeqGrabFrameInfo * SeqGrabFrameInfoPtr grabPictOffScreen EQU 1 grabPictIgnoreClip EQU 2 grabPictCurrentImage EQU 4 sgFlagControlledGrab EQU $01 SGDeviceName RECORD 0 name ds Str63 ; offset: $0 (0) icon ds.l 1 ; offset: $40 (64) flags ds.l 1 ; offset: $44 (68) refCon ds.l 1 ; offset: $48 (72) reserved ds.l 1 ; offset: $4C (76) ; zero sizeof EQU * ; size: $50 (80) ENDR sgDeviceNameFlagDeviceUnavailable EQU $01 SGDeviceListRecord RECORD 0 count ds.w 1 ; offset: $0 (0) selectedIndex ds.w 1 ; offset: $2 (2) reserved ds.l 1 ; offset: $4 (4) ; zero entry ds SGDeviceName ; offset: $8 (8) <-- really an array of length one sizeof EQU * ; size: $58 (88) ENDR ; typedef struct SGDeviceListRecord * SGDeviceListPtr ; typedef SGDeviceListPtr * SGDeviceList sgDeviceListWithIcons EQU $01 sgDeviceListDontCheckAvailability EQU $02 seqGrabWriteAppend EQU 0 seqGrabWriteReserve EQU 1 seqGrabWriteFill EQU 2 seqGrabUnpause EQU 0 seqGrabPause EQU 1 seqGrabPauseForMenu EQU 3 channelFlagDontOpenResFile EQU 2 channelFlagHasDependency EQU 4 sgPanelFlagForPanel EQU 1 seqGrabSettingsPreviewOnly EQU 1 SGOutputRecord RECORD 0 data ds.l 1 ; offset: $0 (0) <-- really an array of length one sizeof EQU * ; size: $4 (4) ENDR ; typedef struct SGOutputRecord * SGOutput channelPlayNormal EQU 0 channelPlayFast EQU 1 channelPlayHighQuality EQU 2 channelPlayAllData EQU 4 ; ; pascal ComponentResult SGInitialize(SeqGrabComponent s) ; IF ¬ GENERATINGCFM THEN Macro _SGInitialize move.l #$00000001,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGInitialize ENDIF ; ; pascal ComponentResult SGSetDataOutput(SeqGrabComponent s, const FSSpec *movieFile, long whereFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGSetDataOutput move.l #$00080002,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetDataOutput ENDIF ; ; pascal ComponentResult SGGetDataOutput(SeqGrabComponent s, FSSpec *movieFile, long *whereFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGGetDataOutput move.l #$00080003,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetDataOutput ENDIF ; ; pascal ComponentResult SGSetGWorld(SeqGrabComponent s, CGrafPtr gp, GDHandle gd) ; IF ¬ GENERATINGCFM THEN Macro _SGSetGWorld move.l #$00080004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetGWorld ENDIF ; ; pascal ComponentResult SGGetGWorld(SeqGrabComponent s, CGrafPtr *gp, GDHandle *gd) ; IF ¬ GENERATINGCFM THEN Macro _SGGetGWorld move.l #$00080005,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetGWorld ENDIF ; ; pascal ComponentResult SGNewChannel(SeqGrabComponent s, OSType channelType, SGChannel *ref) ; IF ¬ GENERATINGCFM THEN Macro _SGNewChannel move.l #$00080006,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGNewChannel ENDIF ; ; pascal ComponentResult SGDisposeChannel(SeqGrabComponent s, SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGDisposeChannel move.l #$00040007,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGDisposeChannel ENDIF ; ; pascal ComponentResult SGStartPreview(SeqGrabComponent s) ; IF ¬ GENERATINGCFM THEN Macro _SGStartPreview move.l #$00000010,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGStartPreview ENDIF ; ; pascal ComponentResult SGStartRecord(SeqGrabComponent s) ; IF ¬ GENERATINGCFM THEN Macro _SGStartRecord move.l #$00000011,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGStartRecord ENDIF ; ; pascal ComponentResult SGIdle(SeqGrabComponent s) ; IF ¬ GENERATINGCFM THEN Macro _SGIdle move.l #$00000012,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGIdle ENDIF ; ; pascal ComponentResult SGStop(SeqGrabComponent s) ; IF ¬ GENERATINGCFM THEN Macro _SGStop move.l #$00000013,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGStop ENDIF ; ; pascal ComponentResult SGPause(SeqGrabComponent s, Byte pause) ; IF ¬ GENERATINGCFM THEN Macro _SGPause move.l #$00020014,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPause ENDIF ; ; pascal ComponentResult SGPrepare(SeqGrabComponent s, Boolean prepareForPreview, Boolean prepareForRecord) ; IF ¬ GENERATINGCFM THEN Macro _SGPrepare move.l #$00040015,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPrepare ENDIF ; ; pascal ComponentResult SGRelease(SeqGrabComponent s) ; IF ¬ GENERATINGCFM THEN Macro _SGRelease move.l #$00000016,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGRelease ENDIF ; ; pascal Movie SGGetMovie(SeqGrabComponent s) ; IF ¬ GENERATINGCFM THEN Macro _SGGetMovie move.l #$00000017,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetMovie ENDIF ; ; pascal ComponentResult SGSetMaximumRecordTime(SeqGrabComponent s, unsigned long ticks) ; IF ¬ GENERATINGCFM THEN Macro _SGSetMaximumRecordTime move.l #$00040018,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetMaximumRecordTime ENDIF ; ; pascal ComponentResult SGGetMaximumRecordTime(SeqGrabComponent s, unsigned long *ticks) ; IF ¬ GENERATINGCFM THEN Macro _SGGetMaximumRecordTime move.l #$00040019,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetMaximumRecordTime ENDIF ; ; pascal ComponentResult SGGetStorageSpaceRemaining(SeqGrabComponent s, unsigned long *bytes) ; IF ¬ GENERATINGCFM THEN Macro _SGGetStorageSpaceRemaining move.l #$0004001A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetStorageSpaceRemaining ENDIF ; ; pascal ComponentResult SGGetTimeRemaining(SeqGrabComponent s, long *ticksLeft) ; IF ¬ GENERATINGCFM THEN Macro _SGGetTimeRemaining move.l #$0004001B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetTimeRemaining ENDIF ; ; pascal ComponentResult SGGrabPict(SeqGrabComponent s, PicHandle *p, const Rect *bounds, short offscreenDepth, long grabPictFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGGrabPict move.l #$000E001C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGrabPict ENDIF ; ; pascal ComponentResult SGGetLastMovieResID(SeqGrabComponent s, short *resID) ; IF ¬ GENERATINGCFM THEN Macro _SGGetLastMovieResID move.l #$0004001D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetLastMovieResID ENDIF ; ; pascal ComponentResult SGSetFlags(SeqGrabComponent s, long sgFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGSetFlags move.l #$0004001E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetFlags ENDIF ; ; pascal ComponentResult SGGetFlags(SeqGrabComponent s, long *sgFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGGetFlags move.l #$0004001F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetFlags ENDIF ; ; pascal ComponentResult SGSetDataProc(SeqGrabComponent s, SGDataUPP proc, long refCon) ; IF ¬ GENERATINGCFM THEN Macro _SGSetDataProc move.l #$00080020,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetDataProc ENDIF ; ; pascal ComponentResult SGNewChannelFromComponent(SeqGrabComponent s, SGChannel *newChannel, Component sgChannelComponent) ; IF ¬ GENERATINGCFM THEN Macro _SGNewChannelFromComponent move.l #$00080021,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGNewChannelFromComponent ENDIF ; ; pascal ComponentResult SGDisposeDeviceList(SeqGrabComponent s, SGDeviceList list) ; IF ¬ GENERATINGCFM THEN Macro _SGDisposeDeviceList move.l #$00040022,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGDisposeDeviceList ENDIF ENDIF IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN ; ; pascal ComponentResult SGAppendDeviceListToMenu(SeqGrabComponent s, SGDeviceList list, MenuHandle mh) ; IF ¬ GENERATINGCFM THEN Macro _SGAppendDeviceListToMenu move.l #$00080023,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGAppendDeviceListToMenu ENDIF ENDIF IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN ; ; pascal ComponentResult SGSetSettings(SeqGrabComponent s, UserData ud, long flags) ; IF ¬ GENERATINGCFM THEN Macro _SGSetSettings move.l #$00080024,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetSettings ENDIF ; ; pascal ComponentResult SGGetSettings(SeqGrabComponent s, UserData *ud, long flags) ; IF ¬ GENERATINGCFM THEN Macro _SGGetSettings move.l #$00080025,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetSettings ENDIF ; ; pascal ComponentResult SGGetIndChannel(SeqGrabComponent s, short index, SGChannel *ref, OSType *chanType) ; IF ¬ GENERATINGCFM THEN Macro _SGGetIndChannel move.l #$000A0026,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetIndChannel ENDIF ; ; pascal ComponentResult SGUpdate(SeqGrabComponent s, RgnHandle updateRgn) ; IF ¬ GENERATINGCFM THEN Macro _SGUpdate move.l #$00040027,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGUpdate ENDIF ; ; pascal ComponentResult SGGetPause(SeqGrabComponent s, Byte *paused) ; IF ¬ GENERATINGCFM THEN Macro _SGGetPause move.l #$00040028,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetPause ENDIF ; ; pascal ComponentResult SGSettingsDialog(SeqGrabComponent s, SGChannel c, short numPanels, Component *panelList, long flags, SGModalFilterUPP proc, long procRefNum) ; IF ¬ GENERATINGCFM THEN Macro _SGSettingsDialog move.l #$00160029,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSettingsDialog ENDIF ; ; pascal ComponentResult SGGetAlignmentProc(SeqGrabComponent s, ICMAlignmentProcRecordPtr alignmentProc) ; IF ¬ GENERATINGCFM THEN Macro _SGGetAlignmentProc move.l #$0004002A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetAlignmentProc ENDIF ; ; pascal ComponentResult SGSetChannelSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelSettings move.l #$000C002B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelSettings ENDIF ; ; pascal ComponentResult SGGetChannelSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelSettings move.l #$000C002C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelSettings ENDIF ; ; pascal ComponentResult SGGetMode(SeqGrabComponent s, Boolean *previewMode, Boolean *recordMode) ; IF ¬ GENERATINGCFM THEN Macro _SGGetMode move.l #$0008002D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetMode ENDIF ; ; pascal ComponentResult SGSetDataRef(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGSetDataRef move.l #$000C002E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetDataRef ENDIF ; ; pascal ComponentResult SGGetDataRef(SeqGrabComponent s, Handle *dataRef, OSType *dataRefType, long *whereFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGGetDataRef move.l #$000C002F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetDataRef ENDIF ; ; pascal ComponentResult SGNewOutput(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags, SGOutput *seqOutput) ; IF ¬ GENERATINGCFM THEN Macro _SGNewOutput move.l #$00100030,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGNewOutput ENDIF ; ; pascal ComponentResult SGDisposeOutput(SeqGrabComponent s, SGOutput seqOutput) ; IF ¬ GENERATINGCFM THEN Macro _SGDisposeOutput move.l #$00040031,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGDisposeOutput ENDIF ; ; pascal ComponentResult SGSetOutputFlags(SeqGrabComponent s, SGOutput seqOutput, long whereFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGSetOutputFlags move.l #$00080032,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetOutputFlags ENDIF ; ; pascal ComponentResult SGSetChannelOutput(SeqGrabComponent s, SGChannel c, SGOutput seqOutput) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelOutput move.l #$00080033,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelOutput ENDIF ; ; pascal ComponentResult SGGetDataOutputStorageSpaceRemaining(SeqGrabComponent s, SGOutput seqOutput, unsigned long *space) ; IF ¬ GENERATINGCFM THEN Macro _SGGetDataOutputStorageSpaceRemaining move.l #$00080034,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetDataOutputStorageSpaceRemaining ENDIF ; ; calls from Channel to seqGrab ; ; ; pascal ComponentResult SGWriteMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset) ; IF ¬ GENERATINGCFM THEN Macro _SGWriteMovieData move.l #$00100100,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGWriteMovieData ENDIF ; ; pascal ComponentResult SGAddFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo) ; IF ¬ GENERATINGCFM THEN Macro _SGAddFrameReference move.l #$00040101,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGAddFrameReference ENDIF ; ; pascal ComponentResult SGGetNextFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo, TimeValue *frameDuration, long *frameNumber) ; IF ¬ GENERATINGCFM THEN Macro _SGGetNextFrameReference move.l #$000C0102,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetNextFrameReference ENDIF ; ; pascal ComponentResult SGGetTimeBase(SeqGrabComponent s, TimeBase *tb) ; IF ¬ GENERATINGCFM THEN Macro _SGGetTimeBase move.l #$00040103,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetTimeBase ENDIF ; ; pascal ComponentResult SGSortDeviceList(SeqGrabComponent s, SGDeviceList list) ; IF ¬ GENERATINGCFM THEN Macro _SGSortDeviceList move.l #$00040104,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSortDeviceList ENDIF ; ; pascal ComponentResult SGAddMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType) ; IF ¬ GENERATINGCFM THEN Macro _SGAddMovieData move.l #$001A0105,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGAddMovieData ENDIF ; ; pascal ComponentResult SGChangedSource(SeqGrabComponent s, SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGChangedSource move.l #$00040106,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGChangedSource ENDIF ; ** Sequence Grab CHANNEL Component Stuff ** ; ; pascal ComponentResult SGSetChannelUsage(SGChannel c, long usage) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelUsage move.l #$00040080,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelUsage ENDIF ; ; pascal ComponentResult SGGetChannelUsage(SGChannel c, long *usage) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelUsage move.l #$00040081,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelUsage ENDIF ; ; pascal ComponentResult SGSetChannelBounds(SGChannel c, const Rect *bounds) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelBounds move.l #$00040082,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelBounds ENDIF ; ; pascal ComponentResult SGGetChannelBounds(SGChannel c, Rect *bounds) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelBounds move.l #$00040083,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelBounds ENDIF ; ; pascal ComponentResult SGSetChannelVolume(SGChannel c, short volume) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelVolume move.l #$00020084,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelVolume ENDIF ; ; pascal ComponentResult SGGetChannelVolume(SGChannel c, short *volume) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelVolume move.l #$00040085,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelVolume ENDIF ; ; pascal ComponentResult SGGetChannelInfo(SGChannel c, long *channelInfo) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelInfo move.l #$00040086,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelInfo ENDIF ; ; pascal ComponentResult SGSetChannelPlayFlags(SGChannel c, long playFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelPlayFlags move.l #$00040087,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelPlayFlags ENDIF ; ; pascal ComponentResult SGGetChannelPlayFlags(SGChannel c, long *playFlags) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelPlayFlags move.l #$00040088,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelPlayFlags ENDIF ; ; pascal ComponentResult SGSetChannelMaxFrames(SGChannel c, long frameCount) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelMaxFrames move.l #$00040089,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelMaxFrames ENDIF ; ; pascal ComponentResult SGGetChannelMaxFrames(SGChannel c, long *frameCount) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelMaxFrames move.l #$0004008A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelMaxFrames ENDIF ; ; pascal ComponentResult SGSetChannelRefCon(SGChannel c, long refCon) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelRefCon move.l #$0004008B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelRefCon ENDIF ; ; pascal ComponentResult SGSetChannelClip(SGChannel c, RgnHandle theClip) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelClip move.l #$0004008C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelClip ENDIF ; ; pascal ComponentResult SGGetChannelClip(SGChannel c, RgnHandle *theClip) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelClip move.l #$0004008D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelClip ENDIF ; ; pascal ComponentResult SGGetChannelSampleDescription(SGChannel c, Handle sampleDesc) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelSampleDescription move.l #$0004008E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelSampleDescription ENDIF ; ; pascal ComponentResult SGGetChannelDeviceList(SGChannel c, long selectionFlags, SGDeviceList *list) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelDeviceList move.l #$0008008F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelDeviceList ENDIF ; ; pascal ComponentResult SGSetChannelDevice(SGChannel c, StringPtr name) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelDevice move.l #$00040090,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelDevice ENDIF ; ; pascal ComponentResult SGSetChannelMatrix(SGChannel c, const MatrixRecord *m) ; IF ¬ GENERATINGCFM THEN Macro _SGSetChannelMatrix move.l #$00040091,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetChannelMatrix ENDIF ; ; pascal ComponentResult SGGetChannelMatrix(SGChannel c, MatrixRecord *m) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelMatrix move.l #$00040092,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelMatrix ENDIF ; ; pascal ComponentResult SGGetChannelTimeScale(SGChannel c, TimeScale *scale) ; IF ¬ GENERATINGCFM THEN Macro _SGGetChannelTimeScale move.l #$00040093,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetChannelTimeScale ENDIF ; ; pascal ComponentResult SGChannelPutPicture(SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGChannelPutPicture move.l #$00000094,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGChannelPutPicture ENDIF ; ; pascal ComponentResult SGChannelSetRequestedDataRate(SGChannel c, long bytesPerSecond) ; IF ¬ GENERATINGCFM THEN Macro _SGChannelSetRequestedDataRate move.l #$00040095,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGChannelSetRequestedDataRate ENDIF ; ; pascal ComponentResult SGChannelGetRequestedDataRate(SGChannel c, long *bytesPerSecond) ; IF ¬ GENERATINGCFM THEN Macro _SGChannelGetRequestedDataRate move.l #$00040096,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGChannelGetRequestedDataRate ENDIF ; ; pascal ComponentResult SGChannelSetDataSourceName(SGChannel c, ConstStr255Param name, ScriptCode scriptTag) ; IF ¬ GENERATINGCFM THEN Macro _SGChannelSetDataSourceName move.l #$00060097,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGChannelSetDataSourceName ENDIF ; ; pascal ComponentResult SGChannelGetDataSourceName(SGChannel c, Str255 name, ScriptCode *scriptTag) ; IF ¬ GENERATINGCFM THEN Macro _SGChannelGetDataSourceName move.l #$00080098,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGChannelGetDataSourceName ENDIF ; ; calls from seqGrab to Channel ; ; ; pascal ComponentResult SGInitChannel(SGChannel c, SeqGrabComponent owner) ; IF ¬ GENERATINGCFM THEN Macro _SGInitChannel move.l #$00040180,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGInitChannel ENDIF ; ; pascal ComponentResult SGWriteSamples(SGChannel c, Movie m, AliasHandle theFile) ; IF ¬ GENERATINGCFM THEN Macro _SGWriteSamples move.l #$00080181,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGWriteSamples ENDIF ; ; pascal ComponentResult SGGetDataRate(SGChannel c, long *bytesPerSecond) ; IF ¬ GENERATINGCFM THEN Macro _SGGetDataRate move.l #$00040182,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetDataRate ENDIF ; ; pascal ComponentResult SGAlignChannelRect(SGChannel c, Rect *r) ; IF ¬ GENERATINGCFM THEN Macro _SGAlignChannelRect move.l #$00040183,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGAlignChannelRect ENDIF ; ; Dorky dialog panel calls ; ; ; pascal ComponentResult SGPanelGetDitl(SeqGrabComponent s, Handle *ditl) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelGetDitl move.l #$00040200,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelGetDitl ENDIF ; ; pascal ComponentResult SGPanelGetTitle(SeqGrabComponent s, Str255 title) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelGetTitle move.l #$00040201,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelGetTitle ENDIF ; ; pascal ComponentResult SGPanelCanRun(SeqGrabComponent s, SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelCanRun move.l #$00040202,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelCanRun ENDIF ; ; pascal ComponentResult SGPanelInstall(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelInstall move.l #$000A0203,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelInstall ENDIF ; ; pascal ComponentResult SGPanelEvent(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, EventRecord *theEvent, short *itemHit, Boolean *handled) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelEvent move.l #$00160204,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelEvent ENDIF ; ; pascal ComponentResult SGPanelItem(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, short itemNum) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelItem move.l #$000C0205,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelItem ENDIF ; ; pascal ComponentResult SGPanelRemove(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelRemove move.l #$000A0206,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelRemove ENDIF ; ; pascal ComponentResult SGPanelSetGrabber(SeqGrabComponent s, SeqGrabComponent sg) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelSetGrabber move.l #$00040207,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelSetGrabber ENDIF ; ; pascal ComponentResult SGPanelSetResFile(SeqGrabComponent s, short resRef) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelSetResFile move.l #$00020208,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelSetResFile ENDIF ; ; pascal ComponentResult SGPanelGetSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelGetSettings move.l #$000C0209,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelGetSettings ENDIF ; ; pascal ComponentResult SGPanelSetSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelSetSettings move.l #$000C020A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelSetSettings ENDIF ; ; pascal ComponentResult SGPanelValidateInput(SeqGrabComponent s, Boolean *ok) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelValidateInput move.l #$0004020B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelValidateInput ENDIF ; ; pascal ComponentResult SGPanelSetEventFilter(SeqGrabComponent s, SGModalFilterUPP proc, long refCon) ; IF ¬ GENERATINGCFM THEN Macro _SGPanelSetEventFilter move.l #$0008020C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGPanelSetEventFilter ENDIF ; ** Sequence Grab VIDEO CHANNEL Component Stuff ** ; ; Video stuff ; SGCompressInfo RECORD 0 buffer ds.l 1 ; offset: $0 (0) bufferSize ds.l 1 ; offset: $4 (4) similarity ds.b 1 ; offset: $8 (8) reserved ds.b 1 ; offset: $9 (9) sizeof EQU * ; size: $A (10) ENDR VideoBottles RECORD 0 procCount ds.w 1 ; offset: $0 (0) grabProc ds.l 1 ; offset: $2 (2) grabCompleteProc ds.l 1 ; offset: $6 (6) displayProc ds.l 1 ; offset: $A (10) compressProc ds.l 1 ; offset: $E (14) compressCompleteProc ds.l 1 ; offset: $12 (18) addFrameProc ds.l 1 ; offset: $16 (22) transferFrameProc ds.l 1 ; offset: $1A (26) grabCompressCompleteProc ds.l 1 ; offset: $1E (30) displayCompressProc ds.l 1 ; offset: $22 (34) sizeof EQU * ; size: $26 (38) ENDR ; ; pascal ComponentResult SGGetSrcVideoBounds(SGChannel c, Rect *r) ; IF ¬ GENERATINGCFM THEN Macro _SGGetSrcVideoBounds move.l #$00040100,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetSrcVideoBounds ENDIF ; ; pascal ComponentResult SGSetVideoRect(SGChannel c, const Rect *r) ; IF ¬ GENERATINGCFM THEN Macro _SGSetVideoRect move.l #$00040101,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetVideoRect ENDIF ; ; pascal ComponentResult SGGetVideoRect(SGChannel c, Rect *r) ; IF ¬ GENERATINGCFM THEN Macro _SGGetVideoRect move.l #$00040102,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetVideoRect ENDIF ; ; pascal ComponentResult SGGetVideoCompressorType(SGChannel c, OSType *compressorType) ; IF ¬ GENERATINGCFM THEN Macro _SGGetVideoCompressorType move.l #$00040103,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetVideoCompressorType ENDIF ; ; pascal ComponentResult SGSetVideoCompressorType(SGChannel c, OSType compressorType) ; IF ¬ GENERATINGCFM THEN Macro _SGSetVideoCompressorType move.l #$00040104,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetVideoCompressorType ENDIF ; ; pascal ComponentResult SGSetVideoCompressor(SGChannel c, short depth, CompressorComponent compressor, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate) ; IF ¬ GENERATINGCFM THEN Macro _SGSetVideoCompressor move.l #$00120105,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetVideoCompressor ENDIF ; ; pascal ComponentResult SGGetVideoCompressor(SGChannel c, short *depth, CompressorComponent *compressor, CodecQ *spatialQuality, CodecQ *temporalQuality, long *keyFrameRate) ; IF ¬ GENERATINGCFM THEN Macro _SGGetVideoCompressor move.l #$00140106,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetVideoCompressor ENDIF ; ; pascal ComponentInstance SGGetVideoDigitizerComponent(SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGGetVideoDigitizerComponent move.l #$00000107,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetVideoDigitizerComponent ENDIF ; ; pascal ComponentResult SGSetVideoDigitizerComponent(SGChannel c, ComponentInstance vdig) ; IF ¬ GENERATINGCFM THEN Macro _SGSetVideoDigitizerComponent move.l #$00040108,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetVideoDigitizerComponent ENDIF ; ; pascal ComponentResult SGVideoDigitizerChanged(SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGVideoDigitizerChanged move.l #$00000109,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGVideoDigitizerChanged ENDIF ; ; pascal ComponentResult SGSetVideoBottlenecks(SGChannel c, VideoBottles *vb) ; IF ¬ GENERATINGCFM THEN Macro _SGSetVideoBottlenecks move.l #$0004010A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetVideoBottlenecks ENDIF ; ; pascal ComponentResult SGGetVideoBottlenecks(SGChannel c, VideoBottles *vb) ; IF ¬ GENERATINGCFM THEN Macro _SGGetVideoBottlenecks move.l #$0004010B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetVideoBottlenecks ENDIF ; ; pascal ComponentResult SGGrabFrame(SGChannel c, short bufferNum) ; IF ¬ GENERATINGCFM THEN Macro _SGGrabFrame move.l #$0002010C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGrabFrame ENDIF ; ; pascal ComponentResult SGGrabFrameComplete(SGChannel c, short bufferNum, Boolean *done) ; IF ¬ GENERATINGCFM THEN Macro _SGGrabFrameComplete move.l #$0006010D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGrabFrameComplete ENDIF ; ; pascal ComponentResult SGDisplayFrame(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn) ; IF ¬ GENERATINGCFM THEN Macro _SGDisplayFrame move.l #$000A010E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGDisplayFrame ENDIF ; ; pascal ComponentResult SGCompressFrame(SGChannel c, short bufferNum) ; IF ¬ GENERATINGCFM THEN Macro _SGCompressFrame move.l #$0002010F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGCompressFrame ENDIF ; ; pascal ComponentResult SGCompressFrameComplete(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci) ; IF ¬ GENERATINGCFM THEN Macro _SGCompressFrameComplete move.l #$000A0110,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGCompressFrameComplete ENDIF ; ; pascal ComponentResult SGAddFrame(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci) ; IF ¬ GENERATINGCFM THEN Macro _SGAddFrame move.l #$000E0111,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGAddFrame ENDIF ; ; pascal ComponentResult SGTransferFrameForCompress(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn) ; IF ¬ GENERATINGCFM THEN Macro _SGTransferFrameForCompress move.l #$000A0112,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGTransferFrameForCompress ENDIF ; ; pascal ComponentResult SGSetCompressBuffer(SGChannel c, short depth, const Rect *compressSize) ; IF ¬ GENERATINGCFM THEN Macro _SGSetCompressBuffer move.l #$00060113,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetCompressBuffer ENDIF ; ; pascal ComponentResult SGGetCompressBuffer(SGChannel c, short *depth, Rect *compressSize) ; IF ¬ GENERATINGCFM THEN Macro _SGGetCompressBuffer move.l #$00080114,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetCompressBuffer ENDIF ; ; pascal ComponentResult SGGetBufferInfo(SGChannel c, short bufferNum, PixMapHandle *bufferPM, Rect *bufferRect, GWorldPtr *compressBuffer, Rect *compressBufferRect) ; IF ¬ GENERATINGCFM THEN Macro _SGGetBufferInfo move.l #$00120115,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetBufferInfo ENDIF ; ; pascal ComponentResult SGSetUseScreenBuffer(SGChannel c, Boolean useScreenBuffer) ; IF ¬ GENERATINGCFM THEN Macro _SGSetUseScreenBuffer move.l #$00020116,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetUseScreenBuffer ENDIF ; ; pascal ComponentResult SGGetUseScreenBuffer(SGChannel c, Boolean *useScreenBuffer) ; IF ¬ GENERATINGCFM THEN Macro _SGGetUseScreenBuffer move.l #$00040117,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetUseScreenBuffer ENDIF ; ; pascal ComponentResult SGGrabCompressComplete(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *tr) ; IF ¬ GENERATINGCFM THEN Macro _SGGrabCompressComplete move.l #$000C0118,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGrabCompressComplete ENDIF ; ; pascal ComponentResult SGDisplayCompress(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn) ; IF ¬ GENERATINGCFM THEN Macro _SGDisplayCompress move.l #$00100119,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGDisplayCompress ENDIF ; ; pascal ComponentResult SGSetFrameRate(SGChannel c, Fixed frameRate) ; IF ¬ GENERATINGCFM THEN Macro _SGSetFrameRate move.l #$0004011A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetFrameRate ENDIF ; ; pascal ComponentResult SGGetFrameRate(SGChannel c, Fixed *frameRate) ; IF ¬ GENERATINGCFM THEN Macro _SGGetFrameRate move.l #$0004011B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetFrameRate ENDIF ; ** Sequence Grab SOUND CHANNEL Component Stuff ** ; ; Sound stuff ; ; ; pascal ComponentResult SGSetSoundInputDriver(SGChannel c, ConstStr255Param driverName) ; IF ¬ GENERATINGCFM THEN Macro _SGSetSoundInputDriver move.l #$00040100,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetSoundInputDriver ENDIF ; ; pascal long SGGetSoundInputDriver(SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGGetSoundInputDriver move.l #$00000101,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetSoundInputDriver ENDIF ; ; pascal ComponentResult SGSoundInputDriverChanged(SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGSoundInputDriverChanged move.l #$00000102,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSoundInputDriverChanged ENDIF ; ; pascal ComponentResult SGSetSoundRecordChunkSize(SGChannel c, long seconds) ; IF ¬ GENERATINGCFM THEN Macro _SGSetSoundRecordChunkSize move.l #$00040103,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetSoundRecordChunkSize ENDIF ; ; pascal long SGGetSoundRecordChunkSize(SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGGetSoundRecordChunkSize move.l #$00000104,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetSoundRecordChunkSize ENDIF ; ; pascal ComponentResult SGSetSoundInputRate(SGChannel c, Fixed rate) ; IF ¬ GENERATINGCFM THEN Macro _SGSetSoundInputRate move.l #$00040105,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetSoundInputRate ENDIF ; ; pascal Fixed SGGetSoundInputRate(SGChannel c) ; IF ¬ GENERATINGCFM THEN Macro _SGGetSoundInputRate move.l #$00000106,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetSoundInputRate ENDIF ; ; pascal ComponentResult SGSetSoundInputParameters(SGChannel c, short sampleSize, short numChannels, OSType compressionType) ; IF ¬ GENERATINGCFM THEN Macro _SGSetSoundInputParameters move.l #$00080107,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGSetSoundInputParameters ENDIF ; ; pascal ComponentResult SGGetSoundInputParameters(SGChannel c, short *sampleSize, short *numChannels, OSType *compressionType) ; IF ¬ GENERATINGCFM THEN Macro _SGGetSoundInputParameters move.l #$000C0108,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SGGetSoundInputParameters ENDIF sgChannelAtom EQU 'chan' sgChannelSettingsAtom EQU 'ctom' sgChannelDescription EQU 'cdsc' sgChannelSettings EQU 'cset' sgDeviceNameType EQU 'name' sgUsageType EQU 'use ' sgPlayFlagsType EQU 'plyf' sgClipType EQU 'clip' sgMatrixType EQU 'mtrx' sgVolumeType EQU 'volu' sgPanelSettingsAtom EQU 'ptom' sgPanelDescription EQU 'pdsc' sgPanelSettings EQU 'pset' sgcSoundCompressionType EQU 'scmp' sgcSoundSampleRateType EQU 'srat' sgcSoundChannelCountType EQU 'schn' sgcSoundSampleSizeType EQU 'ssiz' sgcSoundInputType EQU 'sinp' sgcSoundGainType EQU 'gain' sgcVideoHueType EQU 'hue ' sgcVideoSaturationType EQU 'satr' sgcVideoContrastType EQU 'trst' sgcVideoSharpnessType EQU 'shrp' sgcVideoBrigtnessType EQU 'brit' sgcVideoBlackLevelType EQU 'blkl' sgcVideoWhiteLevelType EQU 'whtl' sgcVideoInputType EQU 'vinp' sgcVideoFormatType EQU 'vstd' sgcVideoFilterType EQU 'vflt' sgcVideoRectType EQU 'vrct' sgVideoDigitizerType EQU 'vdig' kSGInitializeSelect EQU $01 kSGSetDataOutputSelect EQU $02 kSGGetDataOutputSelect EQU $03 kSGSetGWorldSelect EQU $04 kSGGetGWorldSelect EQU $05 kSGNewChannelSelect EQU $06 kSGDisposeChannelSelect EQU $07 kSGStartPreviewSelect EQU $10 kSGStartRecordSelect EQU $11 kSGIdleSelect EQU $12 kSGStopSelect EQU $13 kSGPauseSelect EQU $14 kSGPrepareSelect EQU $15 kSGReleaseSelect EQU $16 kSGGetMovieSelect EQU $17 kSGSetMaximumRecordTimeSelect EQU $18 kSGGetMaximumRecordTimeSelect EQU $19 kSGGetStorageSpaceRemainingSelect EQU $1A kSGGetTimeRemainingSelect EQU $1B kSGGrabPictSelect EQU $1C kSGGetLastMovieResIDSelect EQU $1D kSGSetFlagsSelect EQU $1E kSGGetFlagsSelect EQU $1F kSGSetDataProcSelect EQU $20 kSGNewChannelFromComponentSelect EQU $21 kSGDisposeDeviceListSelect EQU $22 kSGAppendDeviceListToMenuSelect EQU $23 kSGSetSettingsSelect EQU $24 kSGGetSettingsSelect EQU $25 kSGGetIndChannelSelect EQU $26 kSGUpdateSelect EQU $27 kSGGetPauseSelect EQU $28 kSGSettingsDialogSelect EQU $29 kSGGetAlignmentProcSelect EQU $2A kSGSetChannelSettingsSelect EQU $2B kSGGetChannelSettingsSelect EQU $2C kSGGetModeSelect EQU $2D kSGSetDataRefSelect EQU $2E kSGGetDataRefSelect EQU $2F kSGNewOutputSelect EQU $30 kSGDisposeOutputSelect EQU $31 kSGSetOutputFlagsSelect EQU $32 kSGSetChannelOutputSelect EQU $33 kSGGetDataOutputStorageSpaceRemainingSelect EQU $34 kSGWriteMovieDataSelect EQU $0100 kSGAddFrameReferenceSelect EQU $0101 kSGGetNextFrameReferenceSelect EQU $0102 kSGGetTimeBaseSelect EQU $0103 kSGSortDeviceListSelect EQU $0104 kSGAddMovieDataSelect EQU $0105 kSGChangedSourceSelect EQU $0106 kSGCSetChannelUsageSelect EQU $80 kSGCGetChannelUsageSelect EQU $81 kSGCSetChannelBoundsSelect EQU $82 kSGCGetChannelBoundsSelect EQU $83 kSGCSetChannelVolumeSelect EQU $84 kSGCGetChannelVolumeSelect EQU $85 kSGCGetChannelInfoSelect EQU $86 kSGCSetChannelPlayFlagsSelect EQU $87 kSGCGetChannelPlayFlagsSelect EQU $88 kSGCSetChannelMaxFramesSelect EQU $89 kSGCGetChannelMaxFramesSelect EQU $8A kSGCSetChannelRefConSelect EQU $8B kSGCSetChannelClipSelect EQU $8C kSGCGetChannelClipSelect EQU $8D kSGCGetChannelSampleDescriptionSelect EQU $8E kSGCGetChannelDeviceListSelect EQU $8F kSGCSetChannelDeviceSelect EQU $90 kSGCSetChannelMatrixSelect EQU $91 kSGCGetChannelMatrixSelect EQU $92 kSGCGetChannelTimeScaleSelect EQU $93 kSGCChannelPutPictureSelect EQU $94 kSGCChannelSetRequestedDataRateSelect EQU $95 kSGCChannelGetRequestedDataRateSelect EQU $96 kSGCChannelSetDataSourceNameSelect EQU $97 kSGCChannelGetDataSourceNameSelect EQU $98 kSGCInitChannelSelect EQU $0180 kSGCWriteSamplesSelect EQU $0181 kSGCGetDataRateSelect EQU $0182 kSGCAlignChannelRectSelect EQU $0183 kSGCPanelGetDitlSelect EQU $0200 kSGCPanelGetTitleSelect EQU $0201 kSGCPanelCanRunSelect EQU $0202 kSGCPanelInstallSelect EQU $0203 kSGCPanelEventSelect EQU $0204 kSGCPanelItemSelect EQU $0205 kSGCPanelRemoveSelect EQU $0206 kSGCPanelSetGrabberSelect EQU $0207 kSGCPanelSetResFileSelect EQU $0208 kSGCPanelGetSettingsSelect EQU $0209 kSGCPanelSetSettingsSelect EQU $020A kSGCPanelValidateInputSelect EQU $020B kSGCPanelSetEventFilterSelect EQU $020C kSGCGetSrcVideoBoundsSelect EQU $0100 kSGCSetVideoRectSelect EQU $0101 kSGCGetVideoRectSelect EQU $0102 kSGCGetVideoCompressorTypeSelect EQU $0103 kSGCSetVideoCompressorTypeSelect EQU $0104 kSGCSetVideoCompressorSelect EQU $0105 kSGCGetVideoCompressorSelect EQU $0106 kSGCGetVideoDigitizerComponentSelect EQU $0107 kSGCSetVideoDigitizerComponentSelect EQU $0108 kSGCVideoDigitizerChangedSelect EQU $0109 kSGCSetVideoBottlenecksSelect EQU $010A kSGCGetVideoBottlenecksSelect EQU $010B kSGCGrabFrameSelect EQU $010C kSGCGrabFrameCompleteSelect EQU $010D kSGCDisplayFrameSelect EQU $010E kSGCCompressFrameSelect EQU $010F kSGCCompressFrameCompleteSelect EQU $0110 kSGCAddFrameSelect EQU $0111 kSGCTransferFrameForCompressSelect EQU $0112 kSGCSetCompressBufferSelect EQU $0113 kSGCGetCompressBufferSelect EQU $0114 kSGCGetBufferInfoSelect EQU $0115 kSGCSetUseScreenBufferSelect EQU $0116 kSGCGetUseScreenBufferSelect EQU $0117 kSGCGrabCompressCompleteSelect EQU $0118 kSGCDisplayCompressSelect EQU $0119 kSGCSetFrameRateSelect EQU $011A kSGCGetFrameRateSelect EQU $011B kSGCSetSoundInputDriverSelect EQU $0100 kSGCGetSoundInputDriverSelect EQU $0101 kSGCSoundInputDriverChangedSelect EQU $0102 kSGCSetSoundRecordChunkSizeSelect EQU $0103 kSGCGetSoundRecordChunkSizeSelect EQU $0104 kSGCSetSoundInputRateSelect EQU $0105 kSGCGetSoundInputRateSelect EQU $0106 kSGCSetSoundInputParametersSelect EQU $0107 kSGCGetSoundInputParametersSelect EQU $0108 ; Standard type for video digitizers videoDigitizerComponentType EQU 'vdig' vdigInterfaceRev EQU 2 ; Input Format Standards ntscIn EQU 0 ; current input format currentIn EQU 0 ; ntsc input format palIn EQU 1 ; pal input format secamIn EQU 2 ; secam input format ntscReallyIn EQU 3 ; ntsc input format ; Input Formats compositeIn EQU 0 ; input is composite format sVideoIn EQU 1 ; input is sVideo format rgbComponentIn EQU 2 ; input is rgb component format rgbComponentSyncIn EQU 3 ; input is rgb component format (sync on green?) yuvComponentIn EQU 4 ; input is yuv component format yuvComponentSyncIn EQU 5 ; input is yuv component format (sync on green?) tvTunerIn EQU 6 ; Video Digitizer PlayThru States vdPlayThruOff EQU 0 vdPlayThruOn EQU 1 ; Input Color Space Modes vdDigitizerBW EQU 0 ; black and white vdDigitizerRGB EQU 1 ; rgb color ; Phase Lock Loop Modes vdBroadcastMode EQU 0 ; Broadcast / Laser Disk video mode vdVTRMode EQU 1 ; VCR / Magnetic media mode ; Field Select Options vdUseAnyField EQU 0 ; Digitizers choice on field use vdUseOddField EQU 1 ; Use odd field for half size vert and smaller vdUseEvenField EQU 2 ; Use even field for half size vert and smaller ; vdig types vdTypeBasic EQU 0 ; basic, no clipping vdTypeAlpha EQU 1 ; supports clipping with alpha channel vdTypeMask EQU 2 ; supports clipping with mask plane vdTypeKey EQU 3 ; supports clipping with key color(s) ; Digitizer Input Capability/Current Flags digiInDoesNTSC EQU $00000001 ; digitizer supports NTSC input format digiInDoesPAL EQU $00000002 ; digitizer supports PAL input format digiInDoesSECAM EQU $00000004 ; digitizer supports SECAM input format digiInDoesGenLock EQU $00000080 ; digitizer does genlock digiInDoesComposite EQU $00000100 ; digitizer supports composite input type digiInDoesSVideo EQU $00000200 ; digitizer supports S-Video input type digiInDoesComponent EQU $00000400 ; digitizer supports component = rgb, input type digiInVTR_Broadcast EQU $00000800 ; digitizer can differentiate between the two digiInDoesColor EQU $00001000 ; digitizer supports color digiInDoesBW EQU $00002000 ; digitizer supports black & white ; Digitizer Input Current Flags = these are valid only during active operating conditions, digiInSignalLock EQU $80000000 ; digitizer detects input signal is locked, this bit = horiz lock || vertical lock ; Digitizer Output Capability/Current Flags digiOutDoes1 EQU $00000001 ; digitizer supports 1 bit pixels digiOutDoes2 EQU $00000002 ; digitizer supports 2 bit pixels digiOutDoes4 EQU $00000004 ; digitizer supports 4 bit pixels digiOutDoes8 EQU $00000008 ; digitizer supports 8 bit pixels digiOutDoes16 EQU $00000010 ; digitizer supports 16 bit pixels digiOutDoes32 EQU $00000020 ; digitizer supports 32 bit pixels digiOutDoesDither EQU $00000040 ; digitizer dithers in indexed modes digiOutDoesStretch EQU $00000080 ; digitizer can arbitrarily stretch digiOutDoesShrink EQU $00000100 ; digitizer can arbitrarily shrink digiOutDoesMask EQU $00000200 ; digitizer can mask to clipping regions digiOutDoesDouble EQU $00000800 ; digitizer can stretch to exactly double size digiOutDoesQuad EQU $00001000 ; digitizer can stretch exactly quadruple size digiOutDoesQuarter EQU $00002000 ; digitizer can shrink to exactly quarter size digiOutDoesSixteenth EQU $00004000 ; digitizer can shrink to exactly sixteenth size digiOutDoesRotate EQU $00008000 ; digitizer supports rotate transformations digiOutDoesHorizFlip EQU $00010000 ; digitizer supports horizontal flips Sx < 0 digiOutDoesVertFlip EQU $00020000 ; digitizer supports vertical flips Sy < 0 digiOutDoesSkew EQU $00040000 ; digitizer supports skew = shear,twist, digiOutDoesBlend EQU $00080000 digiOutDoesWarp EQU $00100000 digiOutDoesHW_DMA EQU $00200000 ; digitizer not constrained to local device digiOutDoesHWPlayThru EQU $00400000 ; digitizer doesn't need time to play thru digiOutDoesILUT EQU $00800000 ; digitizer does inverse LUT for index modes digiOutDoesKeyColor EQU $01000000 ; digitizer does key color functions too digiOutDoesAsyncGrabs EQU $02000000 ; digitizer supports async grabs digiOutDoesUnreadableScreenBits EQU $04000000 ; playthru doesn't generate readable bits on screen digiOutDoesCompress EQU $08000000 ; supports alternate output data types digiOutDoesCompressOnly EQU $10000000 ; can't provide raw frames anywhere digiOutDoesPlayThruDuringCompress EQU $20000000 ; digi can do playthru while providing compressed data ; Types ; typedef ComponentInstance VideoDigitizerComponent ; typedef ComponentResult VideoDigitizerError DigitizerInfo RECORD 0 vdigType ds.w 1 ; offset: $0 (0) inputCapabilityFlags ds.l 1 ; offset: $2 (2) outputCapabilityFlags ds.l 1 ; offset: $6 (6) inputCurrentFlags ds.l 1 ; offset: $A (10) outputCurrentFlags ds.l 1 ; offset: $E (14) slot ds.w 1 ; offset: $12 (18) ; temporary for connection purposes gdh ds.l 1 ; offset: $14 (20) ; temporary for digitizers that have preferred screen maskgdh ds.l 1 ; offset: $18 (24) ; temporary for digitizers that have mask planes minDestHeight ds.w 1 ; offset: $1C (28) ; Smallest resizable height minDestWidth ds.w 1 ; offset: $1E (30) ; Smallest resizable width maxDestHeight ds.w 1 ; offset: $20 (32) ; Largest resizable height maxDestWidth ds.w 1 ; offset: $22 (34) ; Largest resizable height blendLevels ds.w 1 ; offset: $24 (36) ; Number of blend levels supported (2 if 1 bit mask) reserved ds.l 1 ; offset: $26 (38) ; reserved sizeof EQU * ; size: $2A (42) ENDR VdigType RECORD 0 digType ds.l 1 ; offset: $0 (0) reserved ds.l 1 ; offset: $4 (4) sizeof EQU * ; size: $8 (8) ENDR VdigTypeList RECORD 0 count ds.w 1 ; offset: $0 (0) list ds VdigType ; offset: $2 (2) <-- really an array of length one sizeof EQU * ; size: $A (10) ENDR VdigBufferRec RECORD 0 dest ds.l 1 ; offset: $0 (0) location ds Point ; offset: $4 (4) reserved ds.l 1 ; offset: $8 (8) sizeof EQU * ; size: $C (12) ENDR VdigBufferRecList RECORD 0 count ds.w 1 ; offset: $0 (0) matrix ds.l 1 ; offset: $2 (2) mask ds.l 1 ; offset: $6 (6) list ds VdigBufferRec ; offset: $A (10) <-- really an array of length one sizeof EQU * ; size: $16 (22) ENDR ; typedef struct VdigBufferRecList * VdigBufferRecListPtr ; typedef VdigBufferRecListPtr * VdigBufferRecListHandle VDCompressionList RECORD 0 codec ds.l 1 ; offset: $0 (0) cType ds.l 1 ; offset: $4 (4) typeName ds Str63 ; offset: $8 (8) name ds Str63 ; offset: $48 (72) formatFlags ds.l 1 ; offset: $88 (136) compressFlags ds.l 1 ; offset: $8C (140) reserved ds.l 1 ; offset: $90 (144) sizeof EQU * ; size: $94 (148) ENDR ; typedef struct VDCompressionList * VDCompressionListPtr ; typedef VDCompressionListPtr * VDCompressionListHandle dmaDepth1 EQU 1 dmaDepth2 EQU 2 dmaDepth4 EQU 4 dmaDepth8 EQU 8 dmaDepth16 EQU 16 dmaDepth32 EQU 32 dmaDepth2Gray EQU 64 dmaDepth4Gray EQU 128 dmaDepth8Gray EQU 256 kVDIGControlledFrameRate EQU -1 ; number of vdig calls kvdigSelectors EQU 86 ; ; pascal VideoDigitizerError VDGetMaxSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *maxSrcRect) ; IF ¬ GENERATINGCFM THEN Macro _VDGetMaxSrcRect move.l #$00060001,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetMaxSrcRect ENDIF ; ; pascal VideoDigitizerError VDGetActiveSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *activeSrcRect) ; IF ¬ GENERATINGCFM THEN Macro _VDGetActiveSrcRect move.l #$00060002,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetActiveSrcRect ENDIF ; ; pascal VideoDigitizerError VDSetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect) ; IF ¬ GENERATINGCFM THEN Macro _VDSetDigitizerRect move.l #$00040003,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetDigitizerRect ENDIF ; ; pascal VideoDigitizerError VDGetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect) ; IF ¬ GENERATINGCFM THEN Macro _VDGetDigitizerRect move.l #$00040004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetDigitizerRect ENDIF ; ; pascal VideoDigitizerError VDGetVBlankRect(VideoDigitizerComponent ci, short inputStd, Rect *vBlankRect) ; IF ¬ GENERATINGCFM THEN Macro _VDGetVBlankRect move.l #$00060005,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetVBlankRect ENDIF ; ; pascal VideoDigitizerError VDGetMaskPixMap(VideoDigitizerComponent ci, PixMapHandle maskPixMap) ; IF ¬ GENERATINGCFM THEN Macro _VDGetMaskPixMap move.l #$00040006,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetMaskPixMap ENDIF ; ; pascal VideoDigitizerError VDGetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle *dest, Rect *destRect, MatrixRecord *m, RgnHandle *mask) ; IF ¬ GENERATINGCFM THEN Macro _VDGetPlayThruDestination move.l #$00100008,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetPlayThruDestination ENDIF ; ; pascal VideoDigitizerError VDUseThisCLUT(VideoDigitizerComponent ci, CTabHandle colorTableHandle) ; IF ¬ GENERATINGCFM THEN Macro _VDUseThisCLUT move.l #$00040009,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDUseThisCLUT ENDIF ; ; pascal VideoDigitizerError VDSetInputGammaValue(VideoDigitizerComponent ci, Fixed channel1, Fixed channel2, Fixed channel3) ; IF ¬ GENERATINGCFM THEN Macro _VDSetInputGammaValue move.l #$000C000A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetInputGammaValue ENDIF ; ; pascal VideoDigitizerError VDGetInputGammaValue(VideoDigitizerComponent ci, Fixed *channel1, Fixed *channel2, Fixed *channel3) ; IF ¬ GENERATINGCFM THEN Macro _VDGetInputGammaValue move.l #$000C000B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetInputGammaValue ENDIF ; ; pascal VideoDigitizerError VDSetBrightness(VideoDigitizerComponent ci, unsigned short *brightness) ; IF ¬ GENERATINGCFM THEN Macro _VDSetBrightness move.l #$0004000C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetBrightness ENDIF ; ; pascal VideoDigitizerError VDGetBrightness(VideoDigitizerComponent ci, unsigned short *brightness) ; IF ¬ GENERATINGCFM THEN Macro _VDGetBrightness move.l #$0004000D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetBrightness ENDIF ; ; pascal VideoDigitizerError VDSetContrast(VideoDigitizerComponent ci, unsigned short *contrast) ; IF ¬ GENERATINGCFM THEN Macro _VDSetContrast move.l #$0004000E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetContrast ENDIF ; ; pascal VideoDigitizerError VDSetHue(VideoDigitizerComponent ci, unsigned short *hue) ; IF ¬ GENERATINGCFM THEN Macro _VDSetHue move.l #$0004000F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetHue ENDIF ; ; pascal VideoDigitizerError VDSetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness) ; IF ¬ GENERATINGCFM THEN Macro _VDSetSharpness move.l #$00040010,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetSharpness ENDIF ; ; pascal VideoDigitizerError VDSetSaturation(VideoDigitizerComponent ci, unsigned short *saturation) ; IF ¬ GENERATINGCFM THEN Macro _VDSetSaturation move.l #$00040011,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetSaturation ENDIF ; ; pascal VideoDigitizerError VDGetContrast(VideoDigitizerComponent ci, unsigned short *contrast) ; IF ¬ GENERATINGCFM THEN Macro _VDGetContrast move.l #$00040012,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetContrast ENDIF ; ; pascal VideoDigitizerError VDGetHue(VideoDigitizerComponent ci, unsigned short *hue) ; IF ¬ GENERATINGCFM THEN Macro _VDGetHue move.l #$00040013,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetHue ENDIF ; ; pascal VideoDigitizerError VDGetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness) ; IF ¬ GENERATINGCFM THEN Macro _VDGetSharpness move.l #$00040014,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetSharpness ENDIF ; ; pascal VideoDigitizerError VDGetSaturation(VideoDigitizerComponent ci, unsigned short *saturation) ; IF ¬ GENERATINGCFM THEN Macro _VDGetSaturation move.l #$00040015,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetSaturation ENDIF ; ; pascal VideoDigitizerError VDGrabOneFrame(VideoDigitizerComponent ci) ; IF ¬ GENERATINGCFM THEN Macro _VDGrabOneFrame move.l #$00000016,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGrabOneFrame ENDIF ; ; pascal VideoDigitizerError VDGetMaxAuxBuffer(VideoDigitizerComponent ci, PixMapHandle *pm, Rect *r) ; IF ¬ GENERATINGCFM THEN Macro _VDGetMaxAuxBuffer move.l #$00080017,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetMaxAuxBuffer ENDIF ; ; pascal VideoDigitizerError VDGetDigitizerInfo(VideoDigitizerComponent ci, DigitizerInfo *info) ; IF ¬ GENERATINGCFM THEN Macro _VDGetDigitizerInfo move.l #$00040019,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetDigitizerInfo ENDIF ; ; pascal VideoDigitizerError VDGetCurrentFlags(VideoDigitizerComponent ci, long *inputCurrentFlag, long *outputCurrentFlag) ; IF ¬ GENERATINGCFM THEN Macro _VDGetCurrentFlags move.l #$0008001A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetCurrentFlags ENDIF ; ; pascal VideoDigitizerError VDSetKeyColor(VideoDigitizerComponent ci, long index) ; IF ¬ GENERATINGCFM THEN Macro _VDSetKeyColor move.l #$0004001B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetKeyColor ENDIF ; ; pascal VideoDigitizerError VDGetKeyColor(VideoDigitizerComponent ci, long *index) ; IF ¬ GENERATINGCFM THEN Macro _VDGetKeyColor move.l #$0004001C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetKeyColor ENDIF ; ; pascal VideoDigitizerError VDAddKeyColor(VideoDigitizerComponent ci, long *index) ; IF ¬ GENERATINGCFM THEN Macro _VDAddKeyColor move.l #$0004001D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDAddKeyColor ENDIF ; ; pascal VideoDigitizerError VDGetNextKeyColor(VideoDigitizerComponent ci, long index) ; IF ¬ GENERATINGCFM THEN Macro _VDGetNextKeyColor move.l #$0004001E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetNextKeyColor ENDIF ; ; pascal VideoDigitizerError VDSetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB) ; IF ¬ GENERATINGCFM THEN Macro _VDSetKeyColorRange move.l #$0008001F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetKeyColorRange ENDIF ; ; pascal VideoDigitizerError VDGetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB) ; IF ¬ GENERATINGCFM THEN Macro _VDGetKeyColorRange move.l #$00080020,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetKeyColorRange ENDIF ; ; pascal VideoDigitizerError VDSetDigitizerUserInterrupt(VideoDigitizerComponent ci, long flags, VdigIntUPP userInterruptProc, long refcon) ; IF ¬ GENERATINGCFM THEN Macro _VDSetDigitizerUserInterrupt move.l #$000C0021,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetDigitizerUserInterrupt ENDIF ; ; pascal VideoDigitizerError VDSetInputColorSpaceMode(VideoDigitizerComponent ci, short colorSpaceMode) ; IF ¬ GENERATINGCFM THEN Macro _VDSetInputColorSpaceMode move.l #$00020022,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetInputColorSpaceMode ENDIF ; ; pascal VideoDigitizerError VDGetInputColorSpaceMode(VideoDigitizerComponent ci, short *colorSpaceMode) ; IF ¬ GENERATINGCFM THEN Macro _VDGetInputColorSpaceMode move.l #$00040023,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetInputColorSpaceMode ENDIF ; ; pascal VideoDigitizerError VDSetClipState(VideoDigitizerComponent ci, short clipEnable) ; IF ¬ GENERATINGCFM THEN Macro _VDSetClipState move.l #$00020024,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetClipState ENDIF ; ; pascal VideoDigitizerError VDGetClipState(VideoDigitizerComponent ci, short *clipEnable) ; IF ¬ GENERATINGCFM THEN Macro _VDGetClipState move.l #$00040025,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetClipState ENDIF ; ; pascal VideoDigitizerError VDSetClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion) ; IF ¬ GENERATINGCFM THEN Macro _VDSetClipRgn move.l #$00040026,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetClipRgn ENDIF ; ; pascal VideoDigitizerError VDClearClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion) ; IF ¬ GENERATINGCFM THEN Macro _VDClearClipRgn move.l #$00040027,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDClearClipRgn ENDIF ; ; pascal VideoDigitizerError VDGetCLUTInUse(VideoDigitizerComponent ci, CTabHandle *colorTableHandle) ; IF ¬ GENERATINGCFM THEN Macro _VDGetCLUTInUse move.l #$00040028,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetCLUTInUse ENDIF ; ; pascal VideoDigitizerError VDSetPLLFilterType(VideoDigitizerComponent ci, short pllType) ; IF ¬ GENERATINGCFM THEN Macro _VDSetPLLFilterType move.l #$00020029,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetPLLFilterType ENDIF ; ; pascal VideoDigitizerError VDGetPLLFilterType(VideoDigitizerComponent ci, short *pllType) ; IF ¬ GENERATINGCFM THEN Macro _VDGetPLLFilterType move.l #$0004002A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetPLLFilterType ENDIF ; ; pascal VideoDigitizerError VDGetMaskandValue(VideoDigitizerComponent ci, unsigned short blendLevel, long *mask, long *value) ; IF ¬ GENERATINGCFM THEN Macro _VDGetMaskandValue move.l #$000A002B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetMaskandValue ENDIF ; ; pascal VideoDigitizerError VDSetMasterBlendLevel(VideoDigitizerComponent ci, unsigned short *blendLevel) ; IF ¬ GENERATINGCFM THEN Macro _VDSetMasterBlendLevel move.l #$0004002C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetMasterBlendLevel ENDIF ; ; pascal VideoDigitizerError VDSetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle dest, Rect *destRect, MatrixRecord *m, RgnHandle mask) ; IF ¬ GENERATINGCFM THEN Macro _VDSetPlayThruDestination move.l #$0010002D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetPlayThruDestination ENDIF ; ; pascal VideoDigitizerError VDSetPlayThruOnOff(VideoDigitizerComponent ci, short state) ; IF ¬ GENERATINGCFM THEN Macro _VDSetPlayThruOnOff move.l #$0002002E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetPlayThruOnOff ENDIF ; ; pascal VideoDigitizerError VDSetFieldPreference(VideoDigitizerComponent ci, short fieldFlag) ; IF ¬ GENERATINGCFM THEN Macro _VDSetFieldPreference move.l #$0002002F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetFieldPreference ENDIF ; ; pascal VideoDigitizerError VDGetFieldPreference(VideoDigitizerComponent ci, short *fieldFlag) ; IF ¬ GENERATINGCFM THEN Macro _VDGetFieldPreference move.l #$00040030,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetFieldPreference ENDIF ; ; pascal VideoDigitizerError VDPreflightDestination(VideoDigitizerComponent ci, Rect *digitizerRect, PixMap **dest, Rect *destRect, MatrixRecord *m) ; IF ¬ GENERATINGCFM THEN Macro _VDPreflightDestination move.l #$00100032,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDPreflightDestination ENDIF ; ; pascal VideoDigitizerError VDPreflightGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect) ; IF ¬ GENERATINGCFM THEN Macro _VDPreflightGlobalRect move.l #$00080033,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDPreflightGlobalRect ENDIF ; ; pascal VideoDigitizerError VDSetPlayThruGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect) ; IF ¬ GENERATINGCFM THEN Macro _VDSetPlayThruGlobalRect move.l #$00080034,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetPlayThruGlobalRect ENDIF ; ; pascal VideoDigitizerError VDSetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr inputGammaPtr) ; IF ¬ GENERATINGCFM THEN Macro _VDSetInputGammaRecord move.l #$00040035,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetInputGammaRecord ENDIF ; ; pascal VideoDigitizerError VDGetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr *inputGammaPtr) ; IF ¬ GENERATINGCFM THEN Macro _VDGetInputGammaRecord move.l #$00040036,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetInputGammaRecord ENDIF ; ; pascal VideoDigitizerError VDSetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel) ; IF ¬ GENERATINGCFM THEN Macro _VDSetBlackLevelValue move.l #$00040037,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetBlackLevelValue ENDIF ; ; pascal VideoDigitizerError VDGetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel) ; IF ¬ GENERATINGCFM THEN Macro _VDGetBlackLevelValue move.l #$00040038,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetBlackLevelValue ENDIF ; ; pascal VideoDigitizerError VDSetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel) ; IF ¬ GENERATINGCFM THEN Macro _VDSetWhiteLevelValue move.l #$00040039,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetWhiteLevelValue ENDIF ; ; pascal VideoDigitizerError VDGetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel) ; IF ¬ GENERATINGCFM THEN Macro _VDGetWhiteLevelValue move.l #$0004003A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetWhiteLevelValue ENDIF ; ; pascal VideoDigitizerError VDGetVideoDefaults(VideoDigitizerComponent ci, unsigned short *blackLevel, unsigned short *whiteLevel, unsigned short *brightness, unsigned short *hue, unsigned short *saturation, unsigned short *contrast, unsigned short *sharpness) ; IF ¬ GENERATINGCFM THEN Macro _VDGetVideoDefaults move.l #$001C003B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetVideoDefaults ENDIF ; ; pascal VideoDigitizerError VDGetNumberOfInputs(VideoDigitizerComponent ci, short *inputs) ; IF ¬ GENERATINGCFM THEN Macro _VDGetNumberOfInputs move.l #$0004003C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetNumberOfInputs ENDIF ; ; pascal VideoDigitizerError VDGetInputFormat(VideoDigitizerComponent ci, short input, short *format) ; IF ¬ GENERATINGCFM THEN Macro _VDGetInputFormat move.l #$0006003D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetInputFormat ENDIF ; ; pascal VideoDigitizerError VDSetInput(VideoDigitizerComponent ci, short input) ; IF ¬ GENERATINGCFM THEN Macro _VDSetInput move.l #$0002003E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetInput ENDIF ; ; pascal VideoDigitizerError VDGetInput(VideoDigitizerComponent ci, short *input) ; IF ¬ GENERATINGCFM THEN Macro _VDGetInput move.l #$0004003F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetInput ENDIF ; ; pascal VideoDigitizerError VDSetInputStandard(VideoDigitizerComponent ci, short inputStandard) ; IF ¬ GENERATINGCFM THEN Macro _VDSetInputStandard move.l #$00020040,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetInputStandard ENDIF ; ; pascal VideoDigitizerError VDSetupBuffers(VideoDigitizerComponent ci, VdigBufferRecListHandle bufferList) ; IF ¬ GENERATINGCFM THEN Macro _VDSetupBuffers move.l #$00040041,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetupBuffers ENDIF ; ; pascal VideoDigitizerError VDGrabOneFrameAsync(VideoDigitizerComponent ci, short buffer) ; IF ¬ GENERATINGCFM THEN Macro _VDGrabOneFrameAsync move.l #$00020042,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGrabOneFrameAsync ENDIF ; ; pascal VideoDigitizerError VDDone(VideoDigitizerComponent ci, short buffer) ; IF ¬ GENERATINGCFM THEN Macro _VDDone move.l #$00020043,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDDone ENDIF ; ; pascal VideoDigitizerError VDSetCompression(VideoDigitizerComponent ci, OSType compressType, short depth, Rect *bounds, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate) ; IF ¬ GENERATINGCFM THEN Macro _VDSetCompression move.l #$00160044,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetCompression ENDIF ; ; pascal VideoDigitizerError VDCompressOneFrameAsync(VideoDigitizerComponent ci) ; IF ¬ GENERATINGCFM THEN Macro _VDCompressOneFrameAsync move.l #$00000045,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDCompressOneFrameAsync ENDIF ; ; pascal VideoDigitizerError VDCompressDone(VideoDigitizerComponent ci, Boolean *done, Ptr *theData, long *dataSize, UInt8 *similarity, TimeRecord *t) ; IF ¬ GENERATINGCFM THEN Macro _VDCompressDone move.l #$00140046,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDCompressDone ENDIF ; ; pascal VideoDigitizerError VDReleaseCompressBuffer(VideoDigitizerComponent ci, Ptr bufferAddr) ; IF ¬ GENERATINGCFM THEN Macro _VDReleaseCompressBuffer move.l #$00040047,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDReleaseCompressBuffer ENDIF ; ; pascal VideoDigitizerError VDGetImageDescription(VideoDigitizerComponent ci, ImageDescriptionHandle desc) ; IF ¬ GENERATINGCFM THEN Macro _VDGetImageDescription move.l #$00040048,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetImageDescription ENDIF ; ; pascal VideoDigitizerError VDResetCompressSequence(VideoDigitizerComponent ci) ; IF ¬ GENERATINGCFM THEN Macro _VDResetCompressSequence move.l #$00000049,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDResetCompressSequence ENDIF ; ; pascal VideoDigitizerError VDSetCompressionOnOff(VideoDigitizerComponent ci, Boolean state) ; IF ¬ GENERATINGCFM THEN Macro _VDSetCompressionOnOff move.l #$0002004A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetCompressionOnOff ENDIF ; ; pascal VideoDigitizerError VDGetCompressionTypes(VideoDigitizerComponent ci, VDCompressionListHandle h) ; IF ¬ GENERATINGCFM THEN Macro _VDGetCompressionTypes move.l #$0004004B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetCompressionTypes ENDIF ; ; pascal VideoDigitizerError VDSetTimeBase(VideoDigitizerComponent ci, TimeBase t) ; IF ¬ GENERATINGCFM THEN Macro _VDSetTimeBase move.l #$0004004C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetTimeBase ENDIF ; ; pascal VideoDigitizerError VDSetFrameRate(VideoDigitizerComponent ci, Fixed framesPerSecond) ; IF ¬ GENERATINGCFM THEN Macro _VDSetFrameRate move.l #$0004004D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetFrameRate ENDIF ; ; pascal VideoDigitizerError VDGetDataRate(VideoDigitizerComponent ci, long *milliSecPerFrame, Fixed *framesPerSecond, long *bytesPerSecond) ; IF ¬ GENERATINGCFM THEN Macro _VDGetDataRate move.l #$000C004E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetDataRate ENDIF ; ; pascal VideoDigitizerError VDGetSoundInputDriver(VideoDigitizerComponent ci, Str255 soundDriverName) ; IF ¬ GENERATINGCFM THEN Macro _VDGetSoundInputDriver move.l #$0004004F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetSoundInputDriver ENDIF ; ; pascal VideoDigitizerError VDGetDMADepths(VideoDigitizerComponent ci, long *depthArray, long *preferredDepth) ; IF ¬ GENERATINGCFM THEN Macro _VDGetDMADepths move.l #$00080050,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetDMADepths ENDIF ; ; pascal VideoDigitizerError VDGetPreferredTimeScale(VideoDigitizerComponent ci, TimeScale *preferred) ; IF ¬ GENERATINGCFM THEN Macro _VDGetPreferredTimeScale move.l #$00040051,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetPreferredTimeScale ENDIF ; ; pascal VideoDigitizerError VDReleaseAsyncBuffers(VideoDigitizerComponent ci) ; IF ¬ GENERATINGCFM THEN Macro _VDReleaseAsyncBuffers move.l #$00000052,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDReleaseAsyncBuffers ENDIF ; 83 is reserved for compatibility reasons ; ; pascal VideoDigitizerError VDSetDataRate(VideoDigitizerComponent ci, long bytesPerSecond) ; IF ¬ GENERATINGCFM THEN Macro _VDSetDataRate move.l #$00040054,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDSetDataRate ENDIF ; ; pascal VideoDigitizerError VDGetTimeCode(VideoDigitizerComponent ci, TimeRecord *atTime, void *timeCodeFormat, void *timeCodeTime) ; IF ¬ GENERATINGCFM THEN Macro _VDGetTimeCode move.l #$000C0055,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetTimeCode ENDIF ; ; pascal VideoDigitizerError VDUseSafeBuffers(VideoDigitizerComponent ci, Boolean useSafeBuffers) ; IF ¬ GENERATINGCFM THEN Macro _VDUseSafeBuffers move.l #$00020056,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDUseSafeBuffers ENDIF ; ; pascal VideoDigitizerError VDGetSoundInputSource(VideoDigitizerComponent ci, long videoInput, long *soundInput) ; IF ¬ GENERATINGCFM THEN Macro _VDGetSoundInputSource move.l #$00080057,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetSoundInputSource ENDIF ; ; pascal VideoDigitizerError VDGetCompressionTime(VideoDigitizerComponent ci, OSType compressionType, short depth, Rect *srcRect, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *compressTime) ; IF ¬ GENERATINGCFM THEN Macro _VDGetCompressionTime move.l #$00160058,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION VDGetCompressionTime ENDIF kSelectVDGetMaxSrcRect EQU $01 kSelectVDGetActiveSrcRect EQU $02 kSelectVDSetDigitizerRect EQU $03 kSelectVDGetDigitizerRect EQU $04 kSelectVDGetVBlankRect EQU $05 kSelectVDGetMaskPixMap EQU $06 kSelectVDGetPlayThruDestination EQU $08 kSelectVDUseThisCLUT EQU $09 kSelectVDSetInputGammaValue EQU $0A kSelectVDGetInputGammaValue EQU $0B kSelectVDSetBrightness EQU $0C kSelectVDGetBrightness EQU $0D kSelectVDSetContrast EQU $0E kSelectVDSetHue EQU $0F kSelectVDSetSharpness EQU $10 kSelectVDSetSaturation EQU $11 kSelectVDGetContrast EQU $12 kSelectVDGetHue EQU $13 kSelectVDGetSharpness EQU $14 kSelectVDGetSaturation EQU $15 kSelectVDGrabOneFrame EQU $16 kSelectVDGetMaxAuxBuffer EQU $17 kSelectVDGetDigitizerInfo EQU $19 kSelectVDGetCurrentFlags EQU $1A kSelectVDSetKeyColor EQU $1B kSelectVDGetKeyColor EQU $1C kSelectVDAddKeyColor EQU $1D kSelectVDGetNextKeyColor EQU $1E kSelectVDSetKeyColorRange EQU $1F kSelectVDGetKeyColorRange EQU $20 kSelectVDSetDigitizerUserInterrupt EQU $21 kSelectVDSetInputColorSpaceMode EQU $22 kSelectVDGetInputColorSpaceMode EQU $23 kSelectVDSetClipState EQU $24 kSelectVDGetClipState EQU $25 kSelectVDSetClipRgn EQU $26 kSelectVDClearClipRgn EQU $27 kSelectVDGetCLUTInUse EQU $28 kSelectVDSetPLLFilterType EQU $29 kSelectVDGetPLLFilterType EQU $2A kSelectVDGetMaskandValue EQU $2B kSelectVDSetMasterBlendLevel EQU $2C kSelectVDSetPlayThruDestination EQU $2D kSelectVDSetPlayThruOnOff EQU $2E kSelectVDSetFieldPreference EQU $2F kSelectVDGetFieldPreference EQU $30 kSelectVDPreflightDestination EQU $32 kSelectVDPreflightGlobalRect EQU $33 kSelectVDSetPlayThruGlobalRect EQU $34 kSelectVDSetInputGammaRecord EQU $35 kSelectVDGetInputGammaRecord EQU $36 kSelectVDSetBlackLevelValue EQU $37 kSelectVDGetBlackLevelValue EQU $38 kSelectVDSetWhiteLevelValue EQU $39 kSelectVDGetWhiteLevelValue EQU $3A kSelectVDGetVideoDefaults EQU $3B kSelectVDGetNumberOfInputs EQU $3C kSelectVDGetInputFormat EQU $3D kSelectVDSetInput EQU $3E kSelectVDGetInput EQU $3F kSelectVDSetInputStandard EQU $40 kSelectVDSetupBuffers EQU $41 kSelectVDGrabOneFrameAsync EQU $42 kSelectVDDone EQU $43 kSelectVDSetCompression EQU $44 kSelectVDCompressOneFrameAsync EQU $45 kSelectVDCompressDone EQU $46 kSelectVDReleaseCompressBuffer EQU $47 kSelectVDGetImageDescription EQU $48 kSelectVDResetCompressSequence EQU $49 kSelectVDSetCompressionOnOff EQU $4A kSelectVDGetCompressionTypes EQU $4B kSelectVDSetTimeBase EQU $4C kSelectVDSetFrameRate EQU $4D kSelectVDGetDataRate EQU $4E kSelectVDGetSoundInputDriver EQU $4F kSelectVDGetDMADepths EQU $50 kSelectVDGetPreferredTimeScale EQU $51 kSelectVDReleaseAsyncBuffers EQU $52 kSelectVDSetDataRate EQU $54 kSelectVDGetTimeCode EQU $55 kSelectVDUseSafeBuffers EQU $56 kSelectVDGetSoundInputSource EQU $57 kSelectVDGetCompressionTime EQU $58 StandardCompressionType EQU 'scdi' StandardCompressionSubType EQU 'imag' ; Preference flags. scListEveryCodec EQU $00000002 scAllowZeroFrameRate EQU $00000004 scAllowZeroKeyFrameRate EQU $00000008 scShowBestDepth EQU $00000010 scUseMovableModal EQU $00000020 ; Possible test flags for setting test image. scPreferCropping EQU $01 scPreferScaling EQU $02 scPreferScalingAndCropping EQU $03 ; Dimensions of the image preview box. scTestImageWidth EQU 80 scTestImageHeight EQU 80 ; Possible items returned by hookProc. scOKItem EQU 1 scCancelItem EQU 2 scCustomItem EQU 3 ; Result returned when user cancelled. scUserCancelled EQU 1 ; Get/SetInfo structures. SCSpatialSettings RECORD 0 codecType ds.l 1 ; offset: $0 (0) codec ds.l 1 ; offset: $4 (4) depth ds.w 1 ; offset: $8 (8) spatialQuality ds.l 1 ; offset: $A (10) sizeof EQU * ; size: $E (14) ENDR SCTemporalSettings RECORD 0 temporalQuality ds.l 1 ; offset: $0 (0) frameRate ds.l 1 ; offset: $4 (4) keyFrameRate ds.l 1 ; offset: $8 (8) sizeof EQU * ; size: $C (12) ENDR SCDataRateSettings RECORD 0 dataRate ds.l 1 ; offset: $0 (0) frameDuration ds.l 1 ; offset: $4 (4) minSpatialQuality ds.l 1 ; offset: $8 (8) minTemporalQuality ds.l 1 ; offset: $C (12) sizeof EQU * ; size: $10 (16) ENDR SCExtendedProcs RECORD 0 filterProc ds.l 1 ; offset: $0 (0) hookProc ds.l 1 ; offset: $4 (4) refcon ds.l 1 ; offset: $8 (8) customName ds Str31 ; offset: $C (12) sizeof EQU * ; size: $2C (44) ENDR ; Get/SetInfo selectors scSpatialSettingsType EQU 'sptl' ; pointer to SCSpatialSettings struct scTemporalSettingsType EQU 'tprl' ; pointer to SCTemporalSettings struct scDataRateSettingsType EQU 'drat' ; pointer to SCDataRateSettings struct scColorTableType EQU 'clut' ; pointer to CTabHandle scProgressProcType EQU 'prog' ; pointer to ProgressRecord struct scExtendedProcsType EQU 'xprc' ; pointer to SCExtendedProcs struct scPreferenceFlagsType EQU 'pref' ; pointer to long scSettingsStateType EQU 'ssta' ; pointer to Handle scSequenceIDType EQU 'sequ' ; pointer to ImageSequence scWindowPositionType EQU 'wndw' ; pointer to Point scCodecFlagsType EQU 'cflg' ; pointer to CodecFlags scCodecSettingsType EQU 'cdec' ; pointer to Handle scForceKeyValueType EQU 'ksim' ; pointer to long ; scTypeNotFoundErr returned by Get/SetInfo when type cannot be found. ; * These are Progress procedures * ; ; pascal ComponentResult SCPositionRect(ComponentInstance ci, Rect *rp, Point *where) ; IF ¬ GENERATINGCFM THEN Macro _SCPositionRect move.l #$00080002,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCPositionRect ENDIF ; ; pascal ComponentResult SCPositionDialog(ComponentInstance ci, short id, Point *where) ; IF ¬ GENERATINGCFM THEN Macro _SCPositionDialog move.l #$00060003,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCPositionDialog ENDIF ; ; pascal ComponentResult SCSetTestImagePictHandle(ComponentInstance ci, PicHandle testPict, Rect *testRect, short testFlags) ; IF ¬ GENERATINGCFM THEN Macro _SCSetTestImagePictHandle move.l #$000A0004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCSetTestImagePictHandle ENDIF ; ; pascal ComponentResult SCSetTestImagePictFile(ComponentInstance ci, short testFileRef, Rect *testRect, short testFlags) ; IF ¬ GENERATINGCFM THEN Macro _SCSetTestImagePictFile move.l #$00080005,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCSetTestImagePictFile ENDIF ; ; pascal ComponentResult SCSetTestImagePixMap(ComponentInstance ci, PixMapHandle testPixMap, Rect *testRect, short testFlags) ; IF ¬ GENERATINGCFM THEN Macro _SCSetTestImagePixMap move.l #$000A0006,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCSetTestImagePixMap ENDIF ; ; pascal ComponentResult SCGetBestDeviceRect(ComponentInstance ci, Rect *r) ; IF ¬ GENERATINGCFM THEN Macro _SCGetBestDeviceRect move.l #$00040007,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCGetBestDeviceRect ENDIF ; ; pascal ComponentResult SCRequestImageSettings(ComponentInstance ci) ; IF ¬ GENERATINGCFM THEN Macro _SCRequestImageSettings move.l #$0000000A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCRequestImageSettings ENDIF ; ; pascal ComponentResult SCCompressImage(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc, Handle *data) ; IF ¬ GENERATINGCFM THEN Macro _SCCompressImage move.l #$0010000B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCCompressImage ENDIF ; ; pascal ComponentResult SCCompressPicture(ComponentInstance ci, PicHandle srcPicture, PicHandle dstPicture) ; IF ¬ GENERATINGCFM THEN Macro _SCCompressPicture move.l #$0008000C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCCompressPicture ENDIF ; ; pascal ComponentResult SCCompressPictureFile(ComponentInstance ci, short srcRefNum, short dstRefNum) ; IF ¬ GENERATINGCFM THEN Macro _SCCompressPictureFile move.l #$0004000D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCCompressPictureFile ENDIF ; ; pascal ComponentResult SCRequestSequenceSettings(ComponentInstance ci) ; IF ¬ GENERATINGCFM THEN Macro _SCRequestSequenceSettings move.l #$0000000E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCRequestSequenceSettings ENDIF ; ; pascal ComponentResult SCCompressSequenceBegin(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc) ; IF ¬ GENERATINGCFM THEN Macro _SCCompressSequenceBegin move.l #$000C000F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCCompressSequenceBegin ENDIF ; ; pascal ComponentResult SCCompressSequenceFrame(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, Handle *data, long *dataSize, short *notSyncFlag) ; IF ¬ GENERATINGCFM THEN Macro _SCCompressSequenceFrame move.l #$00140010,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCCompressSequenceFrame ENDIF ; ; pascal ComponentResult SCCompressSequenceEnd(ComponentInstance ci) ; IF ¬ GENERATINGCFM THEN Macro _SCCompressSequenceEnd move.l #$00000011,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCCompressSequenceEnd ENDIF ; ; pascal ComponentResult SCDefaultPictHandleSettings(ComponentInstance ci, PicHandle srcPicture, short motion) ; IF ¬ GENERATINGCFM THEN Macro _SCDefaultPictHandleSettings move.l #$00060012,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCDefaultPictHandleSettings ENDIF ; ; pascal ComponentResult SCDefaultPictFileSettings(ComponentInstance ci, short srcRef, short motion) ; IF ¬ GENERATINGCFM THEN Macro _SCDefaultPictFileSettings move.l #$00040013,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCDefaultPictFileSettings ENDIF ; ; pascal ComponentResult SCDefaultPixMapSettings(ComponentInstance ci, PixMapHandle src, short motion) ; IF ¬ GENERATINGCFM THEN Macro _SCDefaultPixMapSettings move.l #$00060014,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCDefaultPixMapSettings ENDIF ; ; pascal ComponentResult SCGetInfo(ComponentInstance ci, OSType infoType, void *info) ; IF ¬ GENERATINGCFM THEN Macro _SCGetInfo move.l #$00080015,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCGetInfo ENDIF ; ; pascal ComponentResult SCSetInfo(ComponentInstance ci, OSType infoType, void *info) ; IF ¬ GENERATINGCFM THEN Macro _SCSetInfo move.l #$00080016,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCSetInfo ENDIF ; ; pascal ComponentResult SCNewGWorld(ComponentInstance ci, GWorldPtr *gwp, Rect *rp, GWorldFlags flags) ; IF ¬ GENERATINGCFM THEN Macro _SCNewGWorld move.l #$000C0017,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCNewGWorld ENDIF ; ; pascal ComponentResult SCSetCompressFlags(ComponentInstance ci, long flags) ; IF ¬ GENERATINGCFM THEN Macro _SCSetCompressFlags move.l #$00040018,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCSetCompressFlags ENDIF ; ; pascal ComponentResult SCGetCompressFlags(ComponentInstance ci, long *flags) ; IF ¬ GENERATINGCFM THEN Macro _SCGetCompressFlags move.l #$00040019,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCGetCompressFlags ENDIF SCParams RECORD 0 flags ds.l 1 ; offset: $0 (0) theCodecType ds.l 1 ; offset: $4 (4) theCodec ds.l 1 ; offset: $8 (8) spatialQuality ds.l 1 ; offset: $C (12) temporalQuality ds.l 1 ; offset: $10 (16) depth ds.w 1 ; offset: $14 (20) frameRate ds.l 1 ; offset: $16 (22) keyFrameRate ds.l 1 ; offset: $1A (26) reserved1 ds.l 1 ; offset: $1E (30) reserved2 ds.l 1 ; offset: $22 (34) sizeof EQU * ; size: $26 (38) ENDR scGetCompression EQU 1 scShowMotionSettings EQU $00000001 scSettingsChangedItem EQU -1 scCompressFlagIgnoreIdenticalFrames EQU 1 ; ; pascal ComponentResult SCGetCompressionExtended(ComponentInstance ci, SCParams *params, Point where, SCModalFilterUPP filterProc, SCModalHookUPP hookProc, long refcon, StringPtr customName) ; IF ¬ GENERATINGCFM THEN Macro _SCGetCompressionExtended move.l #$00180001,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION SCGetCompressionExtended ENDIF kSCPositionRectSelect EQU $02 kSCPositionDialogSelect EQU $03 kSCSetTestImagePictHandleSelect EQU $04 kSCSetTestImagePictFileSelect EQU $05 kSCSetTestImagePixMapSelect EQU $06 kSCGetBestDeviceRectSelect EQU $07 kSCRequestImageSettingsSelect EQU $0A kSCCompressImageSelect EQU $0B kSCCompressPictureSelect EQU $0C kSCCompressPictureFileSelect EQU $0D kSCRequestSequenceSettingsSelect EQU $0E kSCCompressSequenceBeginSelect EQU $0F kSCCompressSequenceFrameSelect EQU $10 kSCCompressSequenceEndSelect EQU $11 kSCDefaultPictHandleSettingsSelect EQU $12 kSCDefaultPictFileSettingsSelect EQU $13 kSCDefaultPixMapSettingsSelect EQU $14 kSCGetInfoSelect EQU $15 kSCSetInfoSelect EQU $16 kSCNewGWorldSelect EQU $17 kSCSetCompressFlagsSelect EQU $18 kSCGetCompressFlagsSelect EQU $19 kSCGetCompressionExtendedSelect EQU $01 ; typedef ComponentInstance MovieImportComponent ; typedef ComponentInstance MovieExportComponent MovieImportType EQU 'eat ' MovieExportType EQU 'spit' canMovieImportHandles EQU $01 canMovieImportFiles EQU $02 hasMovieImportUserInterface EQU $04 canMovieExportHandles EQU $08 canMovieExportFiles EQU $10 hasMovieExportUserInterface EQU $20 dontAutoFileMovieImport EQU $40 canMovieExportAuxDataHandle EQU $80 canMovieImportValidateHandles EQU $0100 canMovieImportValidateFile EQU $0200 dontRegisterWithEasyOpen EQU $0400 canMovieImportInPlace EQU $0800 movieImportSubTypeIsFileExtension EQU $1000 kMovieImportExportOpenSelect EQU -1 kMovieImportExportCloseSelect EQU -2 kMovieImportExportCanDoSelect EQU -3 kMovieImportExportVersionSelect EQU -4 kMovieImportExportTargetSelect EQU -6 kMovieImportHandleSelect EQU 1 kMovieImportFileSelect EQU 2 kMovieImportSetSampleDurationSelect EQU 3 kMovieImportSetSampleDescriptionSelect EQU 4 kMovieImportSetMediaFileSelect EQU 5 kMovieImportSetDimensionsSelect EQU 6 kMovieImportSetChunkSizeSelect EQU 7 kMovieImportSetProgressProcSelect EQU 8 kMovieImportSetAuxiliaryDataSelect EQU 9 kMovieImportSetFromScrapSelect EQU 10 kMovieImportDoUserDialogSelect EQU 11 kMovieImportSetDurationSelect EQU 12 kMovieImportGetAuxiliaryDataTypeSelect EQU 13 kMovieImportValidateSelect EQU 14 kMovieImportGetFileTypeSelect EQU 15 kMovieExportToHandleSelect EQU 128 kMovieExportToFileSelect EQU 129 kMovieExportDoUserDialogSelectOBSOLETE EQU 130 kMovieExportGetAuxiliaryDataSelect EQU 131 kMovieExportSetProgressProcSelect EQU 132 kMovieExportSetSampleDescriptionSelect EQU 133 kMovieExportDoUserDialogSelect EQU 134 kMovieExportGetCreatorTypeSelect EQU 135 movieImportCreateTrack EQU 1 movieImportInParallel EQU 2 movieImportMustUseTrack EQU 4 movieImportResultUsedMultipleTracks EQU 8 kMovieExportTextOnly EQU 0 kMovieExportAbsoluteTime EQU 1 kMovieExportRelativeTime EQU 2 ; ; pascal ComponentResult MovieImportHandle(MovieImportComponent ci, Handle dataH, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportHandle move.l #$00200001,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportHandle ENDIF ; ; pascal ComponentResult MovieImportFile(MovieImportComponent ci, const FSSpec *theFile, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportFile move.l #$00200002,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportFile ENDIF ; ; pascal ComponentResult MovieImportSetSampleDuration(MovieImportComponent ci, TimeValue duration, TimeScale scale) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportSetSampleDuration move.l #$00080003,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportSetSampleDuration ENDIF ; ; pascal ComponentResult MovieImportSetSampleDescription(MovieImportComponent ci, SampleDescriptionHandle desc, OSType mediaType) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportSetSampleDescription move.l #$00080004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportSetSampleDescription ENDIF ; ; pascal ComponentResult MovieImportSetMediaFile(MovieImportComponent ci, AliasHandle alias) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportSetMediaFile move.l #$00040005,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportSetMediaFile ENDIF ; ; pascal ComponentResult MovieImportSetDimensions(MovieImportComponent ci, Fixed width, Fixed height) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportSetDimensions move.l #$00080006,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportSetDimensions ENDIF ; ; pascal ComponentResult MovieImportSetChunkSize(MovieImportComponent ci, long chunkSize) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportSetChunkSize move.l #$00040007,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportSetChunkSize ENDIF ; ; pascal ComponentResult MovieImportSetProgressProc(MovieImportComponent ci, MovieProgressUPP proc, long refcon) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportSetProgressProc move.l #$00080008,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportSetProgressProc ENDIF ; ; pascal ComponentResult MovieImportSetAuxiliaryData(MovieImportComponent ci, Handle data, OSType handleType) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportSetAuxiliaryData move.l #$00080009,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportSetAuxiliaryData ENDIF ; ; pascal ComponentResult MovieImportSetFromScrap(MovieImportComponent ci, Boolean fromScrap) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportSetFromScrap move.l #$0002000A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportSetFromScrap ENDIF ; ; pascal ComponentResult MovieImportDoUserDialog(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *canceled) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportDoUserDialog move.l #$000C000B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportDoUserDialog ENDIF ; ; pascal ComponentResult MovieImportSetDuration(MovieImportComponent ci, TimeValue duration) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportSetDuration move.l #$0004000C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportSetDuration ENDIF ; ; pascal ComponentResult MovieImportGetAuxiliaryDataType(MovieImportComponent ci, OSType *auxType) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportGetAuxiliaryDataType move.l #$0004000D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportGetAuxiliaryDataType ENDIF ; ; pascal ComponentResult MovieImportValidate(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *valid) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportValidate move.l #$000C000E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportValidate ENDIF ; ; pascal ComponentResult MovieImportGetFileType(MovieImportComponent ci, OSType *fileType) ; IF ¬ GENERATINGCFM THEN Macro _MovieImportGetFileType move.l #$0004000F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieImportGetFileType ENDIF ; ; pascal ComponentResult MovieExportToHandle(MovieExportComponent ci, Handle dataH, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration) ; IF ¬ GENERATINGCFM THEN Macro _MovieExportToHandle move.l #$00140080,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieExportToHandle ENDIF ; ; pascal ComponentResult MovieExportToFile(MovieExportComponent ci, const FSSpec *theFile, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration) ; IF ¬ GENERATINGCFM THEN Macro _MovieExportToFile move.l #$00140081,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieExportToFile ENDIF ; ; pascal ComponentResult MovieExportGetAuxiliaryData(MovieExportComponent ci, Handle dataH, OSType *handleType) ; IF ¬ GENERATINGCFM THEN Macro _MovieExportGetAuxiliaryData move.l #$00080083,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieExportGetAuxiliaryData ENDIF ; ; pascal ComponentResult MovieExportSetProgressProc(MovieExportComponent ci, MovieProgressUPP proc, long refcon) ; IF ¬ GENERATINGCFM THEN Macro _MovieExportSetProgressProc move.l #$00080084,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieExportSetProgressProc ENDIF ; ; pascal ComponentResult MovieExportSetSampleDescription(MovieExportComponent ci, SampleDescriptionHandle desc, OSType mediaType) ; IF ¬ GENERATINGCFM THEN Macro _MovieExportSetSampleDescription move.l #$00080085,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieExportSetSampleDescription ENDIF ; ; pascal ComponentResult MovieExportDoUserDialog(MovieExportComponent ci, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration, Boolean *canceled) ; IF ¬ GENERATINGCFM THEN Macro _MovieExportDoUserDialog move.l #$00140086,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieExportDoUserDialog ENDIF ; ; pascal ComponentResult MovieExportGetCreatorType(MovieExportComponent ci, OSType *creator) ; IF ¬ GENERATINGCFM THEN Macro _MovieExportGetCreatorType move.l #$00040087,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MovieExportGetCreatorType ENDIF IF ¬ GENERATINGPOWERPC THEN ; Text Export Display Info data structure TextDisplayData RECORD 0 displayFlags ds.l 1 ; offset: $0 (0) textJustification ds.l 1 ; offset: $4 (4) bgColor ds RGBColor ; offset: $8 (8) textBox ds Rect ; offset: $E (14) beginHilite ds.w 1 ; offset: $16 (22) endHilite ds.w 1 ; offset: $18 (24) hiliteColor ds RGBColor ; offset: $1A (26) doHiliteColor ds.b 1 ; offset: $20 (32) filler ds.b 1 ; offset: $21 (33) scrollDelayDur ds.l 1 ; offset: $22 (34) dropShadowOffset ds Point ; offset: $26 (38) dropShadowTransparency ds.w 1 ; offset: $2A (42) sizeof EQU * ; size: $2C (44) ENDR ENDIF ; typedef ComponentInstance TextExportComponent ; ; pascal ComponentResult TextExportGetDisplayData(TextExportComponent ci, TextDisplayData *textDisplay) ; IF ¬ GENERATINGCFM THEN Macro _TextExportGetDisplayData move.l #$00040100,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TextExportGetDisplayData ENDIF ; ; pascal ComponentResult TextExportGetTimeFraction(TextExportComponent ci, long *movieTimeFraction) ; IF ¬ GENERATINGCFM THEN Macro _TextExportGetTimeFraction move.l #$00040101,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TextExportGetTimeFraction ENDIF ; ; pascal ComponentResult TextExportSetTimeFraction(TextExportComponent ci, long movieTimeFraction) ; IF ¬ GENERATINGCFM THEN Macro _TextExportSetTimeFraction move.l #$00040102,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TextExportSetTimeFraction ENDIF ; ; pascal ComponentResult TextExportGetSettings(TextExportComponent ci, long *setting) ; IF ¬ GENERATINGCFM THEN Macro _TextExportGetSettings move.l #$00040103,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TextExportGetSettings ENDIF ; ; pascal ComponentResult TextExportSetSettings(TextExportComponent ci, long setting) ; IF ¬ GENERATINGCFM THEN Macro _TextExportSetSettings move.l #$00040104,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TextExportSetSettings ENDIF ; ;************** ; ; File Preview Components ; ;************** ; ; typedef ComponentInstance pnotComponent pnotComponentWantsEvents EQU 1 pnotComponentNeedsNoCache EQU 2 kPreviewOpenSelector EQU 0 kPreviewCloseSelector EQU -1 kPreviewCanDoSelector EQU -2 kPreviewVersionSelector EQU -3 kPreviewShowDataSelector EQU 1 kPreviewMakePreviewSelector EQU 2 kPreviewMakePreviewReferenceSelector EQU 3 kPreviewEventSelector EQU 4 ShowFilePreviewComponentType EQU 'pnot' CreateFilePreviewComponentType EQU 'pmak' ; ; pascal ComponentResult PreviewShowData(pnotComponent p, OSType dataType, Handle data, const Rect *inHere) ; IF ¬ GENERATINGCFM THEN Macro _PreviewShowData move.l #$000C0001,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION PreviewShowData ENDIF ; ; pascal ComponentResult PreviewMakePreview(pnotComponent p, OSType *previewType, Handle *previewResult, const FSSpec *sourceFile, ICMProgressProcRecordPtr progress) ; IF ¬ GENERATINGCFM THEN Macro _PreviewMakePreview move.l #$00100002,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION PreviewMakePreview ENDIF ; ; pascal ComponentResult PreviewMakePreviewReference(pnotComponent p, OSType *previewType, short *resID, const FSSpec *sourceFile) ; IF ¬ GENERATINGCFM THEN Macro _PreviewMakePreviewReference move.l #$000C0003,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION PreviewMakePreviewReference ENDIF ; ; pascal ComponentResult PreviewEvent(pnotComponent p, EventRecord *e, Boolean *handledEvent) ; IF ¬ GENERATINGCFM THEN Macro _PreviewEvent move.l #$00080004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION PreviewEvent ENDIF kDataHCanRead EQU $00000001 kDataHSpecialRead EQU $00000002 kDataHSpecialReadFile EQU $00000004 kDataHCanWrite EQU $00000008 kDataHSpecialWrite EQU $10 kDataHSpecialWriteFile EQU $20 kDataHCanStreamingWrite EQU $40 kDataHMustCheckDataRef EQU $80 DataHVolumeListRecord RECORD 0 vRefNum ds.w 1 ; offset: $0 (0) flags ds.l 1 ; offset: $2 (2) sizeof EQU * ; size: $6 (6) ENDR ; typedef struct DataHVolumeListRecord * DataHVolumeListPtr ; typedef DataHVolumeListPtr * DataHVolumeList kDataHExtendedSchedule EQU 'xtnd' DataHScheduleRecord RECORD 0 timeNeededBy ds TimeRecord ; offset: $0 (0) extendedID ds.l 1 ; offset: $10 (16) ; always is kDataHExtendedSchedule extendedVers ds.l 1 ; offset: $14 (20) ; always set to 0 priority ds.l 1 ; offset: $18 (24) ; 100.0 or more means must have. lower numbers… sizeof EQU * ; size: $1C (28) ENDR ; typedef struct DataHScheduleRecord * DataHSchedulePtr ; ; pascal ComponentResult DataHGetData(DataHandler dh, Handle h, long hOffset, long offset, long size) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetData move.l #$00100002,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetData ENDIF ; ; pascal ComponentResult DataHPutData(DataHandler dh, Handle h, long hOffset, long *offset, long size) ; IF ¬ GENERATINGCFM THEN Macro _DataHPutData move.l #$00100003,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHPutData ENDIF ; ; pascal ComponentResult DataHFlushData(DataHandler dh) ; IF ¬ GENERATINGCFM THEN Macro _DataHFlushData move.l #$00000004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHFlushData ENDIF ; ; pascal ComponentResult DataHOpenForWrite(DataHandler dh) ; IF ¬ GENERATINGCFM THEN Macro _DataHOpenForWrite move.l #$00000005,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHOpenForWrite ENDIF ; ; pascal ComponentResult DataHCloseForWrite(DataHandler dh) ; IF ¬ GENERATINGCFM THEN Macro _DataHCloseForWrite move.l #$00000006,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHCloseForWrite ENDIF ; ; pascal ComponentResult DataHOpenForRead(DataHandler dh) ; IF ¬ GENERATINGCFM THEN Macro _DataHOpenForRead move.l #$00000008,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHOpenForRead ENDIF ; ; pascal ComponentResult DataHCloseForRead(DataHandler dh) ; IF ¬ GENERATINGCFM THEN Macro _DataHCloseForRead move.l #$00000009,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHCloseForRead ENDIF ; ; pascal ComponentResult DataHSetDataRef(DataHandler dh, Handle dataRef) ; IF ¬ GENERATINGCFM THEN Macro _DataHSetDataRef move.l #$0004000A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHSetDataRef ENDIF ; ; pascal ComponentResult DataHGetDataRef(DataHandler dh, Handle *dataRef) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetDataRef move.l #$0004000B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetDataRef ENDIF ; ; pascal ComponentResult DataHCompareDataRef(DataHandler dh, Handle dataRef, Boolean *equal) ; IF ¬ GENERATINGCFM THEN Macro _DataHCompareDataRef move.l #$0008000C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHCompareDataRef ENDIF ; ; pascal ComponentResult DataHTask(DataHandler dh) ; IF ¬ GENERATINGCFM THEN Macro _DataHTask move.l #$0000000D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHTask ENDIF ; ; pascal ComponentResult DataHScheduleData(DataHandler dh, Ptr PlaceToPutDataPtr, long FileOffset, long DataSize, long RefCon, DataHSchedulePtr scheduleRec, DataHCompletionUPP CompletionRtn) ; IF ¬ GENERATINGCFM THEN Macro _DataHScheduleData move.l #$0018000E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHScheduleData ENDIF ; ; pascal ComponentResult DataHFinishData(DataHandler dh, Ptr PlaceToPutDataPtr, Boolean Cancel) ; IF ¬ GENERATINGCFM THEN Macro _DataHFinishData move.l #$0006000F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHFinishData ENDIF ; ; pascal ComponentResult DataHFlushCache(DataHandler dh) ; IF ¬ GENERATINGCFM THEN Macro _DataHFlushCache move.l #$00000010,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHFlushCache ENDIF ; ; pascal ComponentResult DataHResolveDataRef(DataHandler dh, Handle theDataRef, Boolean *wasChanged, Boolean userInterfaceAllowed) ; IF ¬ GENERATINGCFM THEN Macro _DataHResolveDataRef move.l #$000A0011,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHResolveDataRef ENDIF ; ; pascal ComponentResult DataHGetFileSize(DataHandler dh, long *fileSize) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetFileSize move.l #$00040012,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetFileSize ENDIF ; ; pascal ComponentResult DataHCanUseDataRef(DataHandler dh, Handle dataRef, long *useFlags) ; IF ¬ GENERATINGCFM THEN Macro _DataHCanUseDataRef move.l #$00080013,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHCanUseDataRef ENDIF ; ; pascal ComponentResult DataHGetVolumeList(DataHandler dh, DataHVolumeList *volumeList) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetVolumeList move.l #$00040014,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetVolumeList ENDIF ; ; pascal ComponentResult DataHWrite(DataHandler dh, Ptr data, long offset, long size, DataHCompletionUPP completion, long refCon) ; IF ¬ GENERATINGCFM THEN Macro _DataHWrite move.l #$00140015,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHWrite ENDIF ; ; pascal ComponentResult DataHPreextend(DataHandler dh, long maxToAdd, long *spaceAdded) ; IF ¬ GENERATINGCFM THEN Macro _DataHPreextend move.l #$00080016,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHPreextend ENDIF ; ; pascal ComponentResult DataHSetFileSize(DataHandler dh, long fileSize) ; IF ¬ GENERATINGCFM THEN Macro _DataHSetFileSize move.l #$00040017,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHSetFileSize ENDIF ; ; pascal ComponentResult DataHGetFreeSpace(DataHandler dh, unsigned long *freeSize) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetFreeSpace move.l #$00040018,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetFreeSpace ENDIF ; ; pascal ComponentResult DataHCreateFile(DataHandler dh, OSType creator, Boolean deleteExisting) ; IF ¬ GENERATINGCFM THEN Macro _DataHCreateFile move.l #$00060019,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHCreateFile ENDIF ; ; pascal ComponentResult DataHGetPreferredBlockSize(DataHandler dh, long *blockSize) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetPreferredBlockSize move.l #$0004001A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetPreferredBlockSize ENDIF ; ; pascal ComponentResult DataHGetDeviceIndex(DataHandler dh, long *deviceIndex) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetDeviceIndex move.l #$0004001B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetDeviceIndex ENDIF ; ; pascal ComponentResult DataHIsStreamingDataHandler(DataHandler dh, Boolean *yes) ; IF ¬ GENERATINGCFM THEN Macro _DataHIsStreamingDataHandler move.l #$0004001C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHIsStreamingDataHandler ENDIF ; ; pascal ComponentResult DataHGetDataInBuffer(DataHandler dh, long startOffset, long *size) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetDataInBuffer move.l #$0008001D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetDataInBuffer ENDIF ; ; pascal ComponentResult DataHGetScheduleAheadTime(DataHandler dh, long *millisecs) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetScheduleAheadTime move.l #$0004001E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetScheduleAheadTime ENDIF ; ; pascal ComponentResult DataHSetCacheSizeLimit(DataHandler dh, Size cacheSizeLimit) ; IF ¬ GENERATINGCFM THEN Macro _DataHSetCacheSizeLimit move.l #$0004001F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHSetCacheSizeLimit ENDIF ; ; pascal ComponentResult DataHGetCacheSizeLimit(DataHandler dh, Size *cacheSizeLimit) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetCacheSizeLimit move.l #$00040020,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetCacheSizeLimit ENDIF ; ; pascal ComponentResult DataHGetMovie(DataHandler dh, Movie *theMovie, short *id) ; IF ¬ GENERATINGCFM THEN Macro _DataHGetMovie move.l #$00080021,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHGetMovie ENDIF ; ; pascal ComponentResult DataHAddMovie(DataHandler dh, Movie theMovie, short *id) ; IF ¬ GENERATINGCFM THEN Macro _DataHAddMovie move.l #$00080022,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHAddMovie ENDIF ; ; pascal ComponentResult DataHUpdateMovie(DataHandler dh, Movie theMovie, short id) ; IF ¬ GENERATINGCFM THEN Macro _DataHUpdateMovie move.l #$00060023,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHUpdateMovie ENDIF ; ; pascal ComponentResult DataHDoesBuffer(DataHandler dh, Boolean *buffersReads, Boolean *buffersWrites) ; IF ¬ GENERATINGCFM THEN Macro _DataHDoesBuffer move.l #$00080024,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHDoesBuffer ENDIF ; ; pascal ComponentResult DataHPlaybackHints(DataHandler dh, long flags, unsigned long minFileOffset, unsigned long maxFileOffset, long bytesPerSecond) ; IF ¬ GENERATINGCFM THEN Macro _DataHPlaybackHints move.l #$00100103,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION DataHPlaybackHints ENDIF kDataHGetDataSelect EQU $02 kDataHPutDataSelect EQU $03 kDataHFlushDataSelect EQU $04 kDataHOpenForWriteSelect EQU $05 kDataHCloseForWriteSelect EQU $06 kDataHOpenForReadSelect EQU $08 kDataHCloseForReadSelect EQU $09 kDataHSetDataRefSelect EQU $0A kDataHGetDataRefSelect EQU $0B kDataHCompareDataRefSelect EQU $0C kDataHTaskSelect EQU $0D kDataHScheduleDataSelect EQU $0E kDataHFinishDataSelect EQU $0F kDataHFlushCacheSelect EQU $10 kDataHResolveDataRefSelect EQU $11 kDataHGetFileSizeSelect EQU $12 kDataHCanUseDataRefSelect EQU $13 kDataHGetVolumeListSelect EQU $14 kDataHWriteSelect EQU $15 kDataHPreextendSelect EQU $16 kDataHSetFileSizeSelect EQU $17 kDataHGetFreeSpaceSelect EQU $18 kDataHCreateFileSelect EQU $19 kDataHGetPreferredBlockSizeSelect EQU $1A kDataHGetDeviceIndexSelect EQU $1B kDataHIsStreamingDataHandlerSelect EQU $1C kDataHGetDataInBufferSelect EQU $1D kDataHGetScheduleAheadTimeSelect EQU $1E kDataHSetCacheSizeLimitSelect EQU $1F kDataHGetCacheSizeLimitSelect EQU $20 kDataHGetMovieSelect EQU $21 kDataHAddMovieSelect EQU $22 kDataHUpdateMovieSelect EQU $23 kDataHDoesBufferSelect EQU $24 kDataHPlaybackHintsSelect EQU $0103 kMusicComponentType EQU 'musi' ; typedef ComponentInstance MusicComponent ; MusicSynthesizerFlags kSynthesizerDynamicVoice EQU 1 ; can reassign voices/channels (else, hogs all channels in mask kSynthesizerUsesMIDIPort EQU 2 ; must be patched through MIDI Manager kSynthesizerMicrotone EQU 4 ; can play microtonal scales kSynthesizerLimitedMicrotone EQU 8 ; can play microtones, but only on 1-voice parts kSynthesizerMixedDrums EQU 16 ; any part can play drum parts, total = instrument parts kSynthesizerSoftware EQU 32 ; implemented in main CPU software == uses cpu cycles kSynthesizerGMSuperset EQU 8192 kSynthesizerGM EQU 16384 ; synth is a GM device ; ; * Note that these controller numbers ; * are _not_ identical to the MIDI controller numbers. ; * These are _signed_ 8.8 values, and the LSB's are ; * always sent to a MIDI device. Controllers 32-63 are ; * reserved (for MIDI, they are LSB's for 0-31, but we ; * always send both). ; * ; * The full range, therefore, is -128.00 to 127.7f. ; * ; * _Excepting_ _volume_, all controls default to zero. ; * ; * Pitch bend is specified in fractional semitones! No ; * more "pitch bend range" nonsense. You can bend as far ; * as you want, any time you want. ; kControllerModulationWheel EQU 1 kControllerBreath EQU 2 kControllerFoot EQU 4 kControllerPortamentoTime EQU 5 kControllerVolume EQU 7 kControllerBalance EQU 8 kControllerPan EQU 10 ; 0 - "default", 1 - n: positioned in output 1-n (incl fractions) kControllerExpression EQU 11 kControllerPitchBend EQU 32 ; positive & negative semitones, with 7 bits fraction kControllerAfterTouch EQU 33 kControllerSustain EQU 64 ; boolean - positive for on, 0 or negative off kControllerPortamento EQU 65 ; boolean kControllerSostenuto EQU 66 ; boolean kControllerSoftPedal EQU 67 ; boolean kControllerReverb EQU 91 kControllerTremolo EQU 92 kControllerChorus EQU 93 kControllerCeleste EQU 94 kControllerPhaser EQU 95 kControllerMaximum EQU $7FFF ; +01111111.11111111 kControllerMinimum EQU $8000 ; -10000000.00000000 SynthesizerDescription RECORD 0 synthesizerType ds.l 1 ; offset: $0 (0) ; synthesizer type (must be same as component subtype) name ds Str31 ; offset: $4 (4) ; text name of synthesizer type flags ds.l 1 ; offset: $24 (36) ; from the above enum voiceCount ds.l 1 ; offset: $28 (40) ; maximum polyphony partCount ds.l 1 ; offset: $2C (44) ; maximum multi-timbrality (and midi channels) instrumentCount ds.l 1 ; offset: $30 (48) ; non gm, built in (rom) instruments only modifiableInstrumentCount ds.l 1 ; offset: $34 (52) ; plus n-more are user modifiable channelMask ds.l 1 ; offset: $38 (56) ; (midi device only) which channels device always uses drumPartCount ds.l 1 ; offset: $3C (60) ; maximum multi-timbrality of drum parts drumCount ds.l 1 ; offset: $40 (64) ; non gm, built in (rom) drumkits only modifiableDrumCount ds.l 1 ; offset: $44 (68) ; plus n-more are user modifiable drumChannelMask ds.l 1 ; offset: $48 (72) ; (midi device only) which channels device always uses outputCount ds.l 1 ; offset: $4C (76) ; number of audio outputs (usually two) latency ds.l 1 ; offset: $50 (80) ; response time in µSec controllers ds.l 4 ; offset: $54 (84) ; array of 128 bits gmInstruments ds.l 4 ; offset: $64 (100) ; array of 128 bits gmDrums ds.l 4 ; offset: $74 (116) ; array of 128 bits sizeof EQU * ; size: $84 (132) ENDR kVoiceCountDynamic EQU -1 ; constant to use to specify dynamic voicing ToneDescription RECORD 0 synthesizerType ds.l 1 ; offset: $0 (0) ; synthesizer type synthesizerName ds Str31 ; offset: $4 (4) ; name of instantiation of synth instrumentName ds Str31 ; offset: $24 (36) ; preferred name for human use instrumentNumber ds.l 1 ; offset: $44 (68) ; inst-number used if synth-name matches gmNumber ds.l 1 ; offset: $48 (72) ; Best matching general MIDI number sizeof EQU * ; size: $4C (76) ENDR kFirstDrumkit EQU 16384 ; (first value is "no drum". instrument numbers from 16384->16384+128 are drumkits, and for GM they are _defined_ drumkits! kLastDrumkit EQU 16512 ; InstrumentMatch kInstrumentMatchSynthesizerType EQU 1 kInstrumentMatchSynthesizerName EQU 2 kInstrumentMatchName EQU 4 kInstrumentMatchNumber EQU 8 kInstrumentMatchGMNumber EQU 16 ; KnobFlags kKnobRealtime EQU 1 ; Knob can be changed interactively as part of a sequence (ie knob can be changed at interrupt time) kKnobNextNote EQU 2 ; Knob only takes effect on the next note played kKnobAction EQU 4 ; setting the knob does something immediate kKnobNotInstrument EQU 8 ; indicates that the knob isn't in the instrument handle kKnobAffectsOthers EQU 16 ; other knobs will change value from this one kKnobMinorGroupStart EQU 64 ; knob is first in some logical subgroup of knobs kKnobGroupStart EQU 128 ; knob is first in some logical group of knobs ; One of these may be used at a time. kKnobTypeNumber EQU $00 kKnobTypeBoolean EQU $1000 kKnobTypeNote EQU $2000 kKnobTypePan EQU $3000 kKnobTypeInstrument EQU $4000 ; knob value = reference to another instrument number kKnobTypeSetting EQU $5000 ; knob value is 1 of n different things (eg, fm algorithms) kUnknownKnobValue EQU $7FFFFFFF ; a knob with this value means, we don't know it. KnobDescription RECORD 0 name ds Str31 ; offset: $0 (0) lowValue ds.l 1 ; offset: $20 (32) highValue ds.l 1 ; offset: $24 (36) defaultValue ds.l 1 ; offset: $28 (40) ; a default instrument is made of all default values flags ds.l 1 ; offset: $2C (44) sizeof EQU * ; size: $30 (48) ENDR InstrumentData RECORD 0 tone ds ToneDescription ; offset: $0 (0) knobCount ds.l 1 ; offset: $4C (76) knob ds.l 1 ; offset: $50 (80) <-- really an array of length one sizeof EQU * ; size: $54 (84) ENDR ; typedef struct InstrumentData * InstrumentDataPtr ; typedef InstrumentDataPtr * InstrumentDataHandle FlatInstrument RECORD 0 tone ds ToneDescription ; offset: $0 (0) size ds.l 1 ; offset: $4C (76) ; size in bytes of the following data, including size field (excluding tonedescription) data ds.b 4 ; offset: $50 (80) sizeof EQU * ; size: $54 (84) ENDR InstrumentAboutInfo RECORD 0 p ds.l 1 ; offset: $0 (0) author ds Str255 ; offset: $4 (4) copyright ds Str255 ; offset: $104 (260) other ds Str255 ; offset: $204 (516) sizeof EQU * ; size: $304 (772) ENDR MusicMIDIPacket RECORD 0 length ds.w 1 ; offset: $0 (0) reserved ds.l 1 ; offset: $2 (2) data ds.b 249 ; offset: $6 (6) ORG 256 sizeof EQU * ; size: $100 (256) ENDR ; -------------------------------- kMusicFirstSelect EQU 0 kMusicGetDescriptionSelect EQU 1 kMusicGetPartSelect EQU 2 kMusicSetPartSelect EQU 3 kMusicSetInstrumentNumberSelect EQU 4 kMusicGetInstrumentNumberSelect EQU 5 kMusicStoreInstrumentSelect EQU 6 kMusicGetInstrumentSelect EQU 7 kMusicSetInstrumentSelect EQU 8 kMusicDummyOne EQU 9 kMusicDummyTwo EQU 10 kMusicDummyThree EQU 11 kMusicDummyFour EQU 12 kMusicGetInstrumentKnobDescriptionSelect EQU 13 kMusicGetDrumKnobDescriptionSelect EQU 14 kMusicGetKnobDescriptionSelect EQU 15 kMusicGetPartKnobSelect EQU 16 kMusicSetPartKnobSelect EQU 17 kMusicGetKnobSelect EQU 18 kMusicSetKnobSelect EQU 19 kMusicGetPartNameSelect EQU 20 kMusicSetPartNameSelect EQU 21 kMusicFindToneSelect EQU 22 kMusicPlayNoteSelect EQU 23 kMusicResetPartSelect EQU 24 kMusicSetControllerSelect EQU 25 kMusicGetControllerSelect EQU 26 kMusicGetMIDIProcSelect EQU 27 kMusicSetMIDIProcSelect EQU 28 kMusicGetInstrumentNamesSelect EQU 29 kMusicGetDrumNamesSelect EQU 30 kMusicGetMasterTuneSelect EQU 31 kMusicSetMasterTuneSelect EQU 32 kMusicSetFlatInstrumentSelect EQU 33 kMusicGetInstrumentAboutInfoSelect EQU 34 notImplementedMusicErr EQU $8000F7CB cantSendToSynthesizerErr EQU $8000F7CA cantReceiveFromSynthesizerErr EQU $8000F7C9 illegalVoiceAllocationErr EQU $8000F7C8 illegalPartErr EQU $8000F7C7 illegalChannelErr EQU $8000F7C6 illegalKnobErr EQU $8000F7C5 illegalKnobValueErr EQU $8000F7C4 illegalInstrumentErr EQU $8000F7C3 illegalControllerErr EQU $8000F7C2 midiManagerAbsentErr EQU $8000F7C1 synthesizerNotRespondingErr EQU $8000F7C0 synthesizerErr EQU $8000F7BF illegalNoteChannelErr EQU $8000F7BE noteChannelNotAllocatedErr EQU $8000F7BD tunePlayerFullErr EQU $8000F7BC tuneParseErr EQU $8000F7BB kGMType EQU 'gm ' ; subtype for General MIDI music component ; ;----------------------------------------- ; Capabilities and Voice Allocation ;----------------------------------------- ; ; ; pascal ComponentResult MusicGetPart(MusicComponent mc, long part, long *midiChannel, long *polyphony) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetPart move.l #$000C0002,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetPart ENDIF ; ; pascal ComponentResult MusicSetPart(MusicComponent mc, long part, long midiChannel, long polyphony) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetPart move.l #$000C0003,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetPart ENDIF ; ; pascal ComponentResult MusicGetDescription(MusicComponent mc, SynthesizerDescription *sd) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetDescription move.l #$00040001,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetDescription ENDIF ; ; pascal ComponentResult MusicGetInstrumentAboutInfo(MusicComponent mc, long part, InstrumentAboutInfo *iai) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetInstrumentAboutInfo move.l #$00080022,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetInstrumentAboutInfo ENDIF ; ;----------------------------------------- ; Instrument Loading and Storing ;----------------------------------------- ; ; ; pascal ComponentResult MusicSetInstrumentNumber(MusicComponent mc, long part, long instrumentNumber) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetInstrumentNumber move.l #$00080004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetInstrumentNumber ENDIF ; ; pascal ComponentResult MusicGetInstrumentNumber(MusicComponent mc, long part) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetInstrumentNumber move.l #$00040005,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetInstrumentNumber ENDIF ; ; pascal ComponentResult MusicStoreInstrument(MusicComponent mc, long part, long instrumentNumber) ; IF ¬ GENERATINGCFM THEN Macro _MusicStoreInstrument move.l #$00080006,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicStoreInstrument ENDIF ; ; pascal ComponentResult MusicGetInstrument(MusicComponent mc, long part, InstrumentDataHandle *iH) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetInstrument move.l #$00080007,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetInstrument ENDIF ; ; pascal ComponentResult MusicSetInstrument(MusicComponent mc, long part, InstrumentDataHandle iH) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetInstrument move.l #$00080008,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetInstrument ENDIF ; ; pascal ComponentResult MusicSetFlatInstrument(MusicComponent mc, long part, FlatInstrument *flatInstrument) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetFlatInstrument move.l #$00080021,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetFlatInstrument ENDIF ; ;----------------------------------------- ; Instrument Knobs ;----------------------------------------- ; ; ; pascal ComponentResult MusicGetInstrumentKnobDescription(MusicComponent mc, long knobNumber, KnobDescription *mkd) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetInstrumentKnobDescription move.l #$0008000D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetInstrumentKnobDescription ENDIF ; ; pascal ComponentResult MusicGetDrumKnobDescription(MusicComponent mc, long knobNumber, KnobDescription *mkd) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetDrumKnobDescription move.l #$0008000E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetDrumKnobDescription ENDIF ; ; pascal ComponentResult MusicGetPartKnob(MusicComponent mc, long part, long knobNumber) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetPartKnob move.l #$00080010,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetPartKnob ENDIF ; ; pascal ComponentResult MusicSetPartKnob(MusicComponent mc, long part, long knobNumber, long knobValue) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetPartKnob move.l #$000C0011,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetPartKnob ENDIF ; ;----------------------------------------- ; Synthesizer Knobs ;----------------------------------------- ; ; ; pascal ComponentResult MusicGetKnobDescription(MusicComponent mc, long knobNumber, KnobDescription *mkd) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetKnobDescription move.l #$0008000F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetKnobDescription ENDIF ; ; pascal ComponentResult MusicGetKnob(MusicComponent mc, long knobNumber) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetKnob move.l #$00040012,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetKnob ENDIF ; ; pascal ComponentResult MusicSetKnob(MusicComponent mc, long knobNumber, long knobValue) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetKnob move.l #$00080013,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetKnob ENDIF ; ; pascal ComponentResult MusicSetMasterTune(MusicComponent mc, Fixed masterTune) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetMasterTune move.l #$00040020,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetMasterTune ENDIF ; ; pascal ComponentResult MusicGetMasterTune(MusicComponent mc) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetMasterTune move.l #$0000001F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetMasterTune ENDIF ; ;----------------------------------------- ; Names of Instruments ;----------------------------------------- ; ; ; pascal ComponentResult MusicGetPartName(MusicComponent mc, long part, Str31 name) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetPartName move.l #$00080014,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetPartName ENDIF ; ; pascal ComponentResult MusicSetPartName(MusicComponent mc, long part, Str31 name) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetPartName move.l #$00080015,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetPartName ENDIF ; ; pascal ComponentResult MusicFindTone(MusicComponent mc, ToneDescription *td, long *instrumentNumber, unsigned long *fit) ; IF ¬ GENERATINGCFM THEN Macro _MusicFindTone move.l #$000C0016,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicFindTone ENDIF ; ; pascal ComponentResult MusicGetInstrumentNames(MusicComponent mc, long modifiableInstruments, Handle *instrumentNames, Handle *instrumentCategoryLasts, Handle *instrumentCategoryNames) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetInstrumentNames move.l #$0010001D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetInstrumentNames ENDIF ; ; pascal ComponentResult MusicGetDrumNames(MusicComponent mc, long modifiableInstruments, Handle *instrumentNumbers, Handle *instrumentNames) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetDrumNames move.l #$000C001E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetDrumNames ENDIF ; ;----------------------------------------- ; Realtime Actions ;----------------------------------------- ; ; ; pascal ComponentResult MusicPlayNote(MusicComponent mc, long part, long pitch, long velocity) ; IF ¬ GENERATINGCFM THEN Macro _MusicPlayNote move.l #$000C0017,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicPlayNote ENDIF ; ; pascal ComponentResult MusicResetPart(MusicComponent mc, long part) ; IF ¬ GENERATINGCFM THEN Macro _MusicResetPart move.l #$00040018,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicResetPart ENDIF ; ; pascal ComponentResult MusicSetController(MusicComponent mc, long part, long controllerNumber, long controllerValue) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetController move.l #$000C0019,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetController ENDIF ; ; pascal ComponentResult MusicGetController(MusicComponent mc, long part, long controllerNumber) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetController move.l #$0008001A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetController ENDIF ; ;----------------------------------------- ; Finding the Hardware ;----------------------------------------- ; ; ; pascal ComponentResult MusicGetMIDIProc(MusicComponent mc, MusicMIDISendUPP *midiSendProc, long *refCon) ; IF ¬ GENERATINGCFM THEN Macro _MusicGetMIDIProc move.l #$0008001B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicGetMIDIProc ENDIF ; ; pascal ComponentResult MusicSetMIDIProc(MusicComponent mc, MusicMIDISendUPP midiSendProc, long refCon) ; IF ¬ GENERATINGCFM THEN Macro _MusicSetMIDIProc move.l #$0008001C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION MusicSetMIDIProc ENDIF ; ;-------------------------- ; Types ;-------------------------- ; ; typedef void * NoteChannel ; used for MIDI device only SynthesizerConnections RECORD 0 clientID ds.l 1 ; offset: $0 (0) inputPortID ds.l 1 ; offset: $4 (4) outputPortID ds.l 1 ; offset: $8 (8) midiChannel ds.l 1 ; offset: $C (12) ; The system channel; others are configurable (or the nubus slot number) flags ds.l 1 ; offset: $10 (16) reserved ds.l 3 ; offset: $14 (20) ; should be zero sizeof EQU * ; size: $20 (32) ENDR NoteRequest RECORD 0 polyphony ds.l 1 ; offset: $0 (0) ; Maximum number of voices typicalPolyphony ds.l 1 ; offset: $4 (4) ; Hint for level mixing tone ds ToneDescription ; offset: $8 (8) sizeof EQU * ; size: $54 (84) ENDR kNAFirstSelector EQU -7 kNATargetSelect EQU -6 kNARegisterSelect EQU -5 kNAVersionSelect EQU -4 kNACanDoSelect EQU -3 kNACloseSelect EQU -2 kNAOpenSelect EQU -1 kNARegisterMusicDeviceSelect EQU 0 kNAUnregisterMusicDeviceSelect EQU 1 kNAGetRegisteredMusicDeviceSelect EQU 2 kNASaveMusicConfigurationSelect EQU 3 kNANewNoteChannelSelect EQU 4 kNADisposeNoteChannelSelect EQU 5 kNAGetNoteChannelInfoSelect EQU 6 kNAPrerollNoteChannelSelect EQU 7 kNAUnrollNoteChannelSelect EQU 8 kNAEngageNoteChannelSelect EQU 9 kNADisengageNoteChannelSelect EQU 10 kNASetNoteChannelVolumeSelect EQU 11 kNAResetNoteChannelSelect EQU 12 kNAPlayNoteSelect EQU 13 kNASetControllerSelect EQU 14 kNASetKnobSelect EQU 15 kNAFindNoteChannelToneSelect EQU 16 kNASetNoteChannelInstrumentSelect EQU 17 kNAPickInstrumentSelect EQU 18 kNAPickArrangementSelect EQU 19 kNAGetStatusBlockSelect EQU 20 kNASetDefaultMIDIInputSelect EQU 21 kNAGetDefaultMIDIInputSelect EQU 22 kNAGetNoteChannelStateSelect EQU 23 kNASetNoteChannelStateSelect EQU 24 kNAUseDefaultMIDIInputSelect EQU 25 kNALoseDefaultMIDIInputSelect EQU 26 kNAStuffToneDescriptionSelect EQU 27 kNACopyrightDialogSelect EQU 28 kNASetFlatInstrumentSelect EQU 29 kNASetInstrumentSelect EQU 30 kNALastSelector EQU 31 ; typedef ComponentInstance NoteAllocator kPickDontMix EQU 1 ; dont mix instruments with drum sounds kPickSameSynth EQU 2 ; only allow the same device that went in, to come out kNoteAllocatorType EQU 'nota' ; ;-------------------------------- ; Note Allocator Prototypes ;-------------------------------- ; ; ; * System Configuration ; ; ; pascal ComponentResult NARegisterMusicDevice(NoteAllocator na, OSType synthType, Str31 name, SynthesizerConnections *connections) ; IF ¬ GENERATINGCFM THEN Macro _NARegisterMusicDevice move.l #$000C0000,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NARegisterMusicDevice ENDIF ; ; pascal ComponentResult NAUnregisterMusicDevice(NoteAllocator na, long index) ; IF ¬ GENERATINGCFM THEN Macro _NAUnregisterMusicDevice move.l #$00040001,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAUnregisterMusicDevice ENDIF ; ; pascal ComponentResult NAGetRegisteredMusicDevice(NoteAllocator na, long index, OSType *synthType, Str31 name, SynthesizerConnections *connections, MusicComponent *mc) ; IF ¬ GENERATINGCFM THEN Macro _NAGetRegisteredMusicDevice move.l #$00140002,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAGetRegisteredMusicDevice ENDIF ; ; pascal ComponentResult NASetDefaultMIDIInput(NoteAllocator na, SynthesizerConnections *sc) ; IF ¬ GENERATINGCFM THEN Macro _NASetDefaultMIDIInput move.l #$00040015,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NASetDefaultMIDIInput ENDIF ; ; pascal ComponentResult NAGetDefaultMIDIInput(NoteAllocator na, SynthesizerConnections *sc) ; IF ¬ GENERATINGCFM THEN Macro _NAGetDefaultMIDIInput move.l #$00040016,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAGetDefaultMIDIInput ENDIF ; ; pascal ComponentResult NASaveMusicConfiguration(NoteAllocator na) ; IF ¬ GENERATINGCFM THEN Macro _NASaveMusicConfiguration move.l #$00000003,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NASaveMusicConfiguration ENDIF ; ; * Allocation ; ; ; pascal ComponentResult NANewNoteChannel(NoteAllocator na, NoteRequest *noteRequest, NoteChannel *outChannel) ; IF ¬ GENERATINGCFM THEN Macro _NANewNoteChannel move.l #$00080004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NANewNoteChannel ENDIF ; ; pascal ComponentResult NADisposeNoteChannel(NoteAllocator na, NoteChannel noteChannel) ; IF ¬ GENERATINGCFM THEN Macro _NADisposeNoteChannel move.l #$00040005,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NADisposeNoteChannel ENDIF ; ; pascal ComponentResult NAGetNoteChannelInfo(NoteAllocator na, NoteChannel noteChannel, long *index, long *part) ; IF ¬ GENERATINGCFM THEN Macro _NAGetNoteChannelInfo move.l #$000C0006,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAGetNoteChannelInfo ENDIF ; ; pascal ComponentResult NAUseDefaultMIDIInput(NoteAllocator na, MusicMIDIReadHookUPP readHook, long refCon, unsigned long flags) ; IF ¬ GENERATINGCFM THEN Macro _NAUseDefaultMIDIInput move.l #$000C0019,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAUseDefaultMIDIInput ENDIF ; ; pascal ComponentResult NALoseDefaultMIDIInput(NoteAllocator na) ; IF ¬ GENERATINGCFM THEN Macro _NALoseDefaultMIDIInput move.l #$0000001A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NALoseDefaultMIDIInput ENDIF ; ; * Setup ; ; ; pascal ComponentResult NAPrerollNoteChannel(NoteAllocator na, NoteChannel noteChannel) ; IF ¬ GENERATINGCFM THEN Macro _NAPrerollNoteChannel move.l #$00040007,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAPrerollNoteChannel ENDIF ; ; pascal ComponentResult NAUnrollNoteChannel(NoteAllocator na, NoteChannel noteChannel) ; IF ¬ GENERATINGCFM THEN Macro _NAUnrollNoteChannel move.l #$00040008,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAUnrollNoteChannel ENDIF ; ; pascal ComponentResult NAEngageNoteChannel(NoteAllocator na, NoteChannel noteChannel) ; IF ¬ GENERATINGCFM THEN Macro _NAEngageNoteChannel move.l #$00040009,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAEngageNoteChannel ENDIF ; ; pascal ComponentResult NADisengageNoteChannel(NoteAllocator na, NoteChannel noteChannel, long silenceNotes) ; IF ¬ GENERATINGCFM THEN Macro _NADisengageNoteChannel move.l #$0008000A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NADisengageNoteChannel ENDIF ; ; pascal ComponentResult NAGetNoteChannelState(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber, Handle *state) ; IF ¬ GENERATINGCFM THEN Macro _NAGetNoteChannelState move.l #$000C0017,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAGetNoteChannelState ENDIF ; ; pascal ComponentResult NASetNoteChannelState(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber, Handle state) ; IF ¬ GENERATINGCFM THEN Macro _NASetNoteChannelState move.l #$000C0018,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NASetNoteChannelState ENDIF ; ; pascal ComponentResult NAResetNoteChannel(NoteAllocator na, NoteChannel noteChannel) ; IF ¬ GENERATINGCFM THEN Macro _NAResetNoteChannel move.l #$0004000C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAResetNoteChannel ENDIF ; ; pascal ComponentResult NASetNoteChannelVolume(NoteAllocator na, NoteChannel noteChannel, Fixed volume) ; IF ¬ GENERATINGCFM THEN Macro _NASetNoteChannelVolume move.l #$0008000B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NASetNoteChannelVolume ENDIF ; ; pascal ComponentResult NASetInstrument(NoteAllocator na, NoteChannel noteChannel, InstrumentData *instrumentData) ; IF ¬ GENERATINGCFM THEN Macro _NASetInstrument move.l #$0008001E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NASetInstrument ENDIF ; ; pascal ComponentResult NASetFlatInstrument(NoteAllocator na, NoteChannel noteChannel, FlatInstrument *flatInstrument) ; IF ¬ GENERATINGCFM THEN Macro _NASetFlatInstrument move.l #$0008001D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NASetFlatInstrument ENDIF ; ; * Control ; ; ; pascal ComponentResult NAPlayNote(NoteAllocator na, NoteChannel noteChannel, long pitch, long velocity) ; IF ¬ GENERATINGCFM THEN Macro _NAPlayNote move.l #$000C000D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAPlayNote ENDIF ; ; pascal ComponentResult NASetController(NoteAllocator na, NoteChannel noteChannel, long controllerNumber, long controllerValue) ; IF ¬ GENERATINGCFM THEN Macro _NASetController move.l #$000C000E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NASetController ENDIF ; ; pascal ComponentResult NASetKnob(NoteAllocator na, NoteChannel noteChannel, long knobNumber, long knobValue) ; IF ¬ GENERATINGCFM THEN Macro _NASetKnob move.l #$000C000F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NASetKnob ENDIF ; ; pascal ComponentResult NAFindNoteChannelTone(NoteAllocator na, NoteChannel noteChannel, ToneDescription *td, long *instrumentNumber) ; IF ¬ GENERATINGCFM THEN Macro _NAFindNoteChannelTone move.l #$000C0010,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAFindNoteChannelTone ENDIF ; ; pascal ComponentResult NASetNoteChannelInstrument(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber) ; IF ¬ GENERATINGCFM THEN Macro _NASetNoteChannelInstrument move.l #$00080011,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NASetNoteChannelInstrument ENDIF ENDIF IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN ; ; * User Interface ; ; ; pascal ComponentResult NAPickInstrument(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, ToneDescription *sd, unsigned long flags, long refCon, Ptr *flatList, long *flatChoiceIndex) ; IF ¬ GENERATINGCFM THEN Macro _NAPickInstrument move.l #$001C0012,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAPickInstrument ENDIF ; ; pascal ComponentResult NAStuffToneDescription(NoteAllocator na, long gmNumber, ToneDescription *td) ; IF ¬ GENERATINGCFM THEN Macro _NAStuffToneDescription move.l #$0008001B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAStuffToneDescription ENDIF ; ; pascal ComponentResult NAPickArrangement(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, long partCount, NoteRequest *noteRequestList, Track t, StringPtr songName) ; IF ¬ GENERATINGCFM THEN Macro _NAPickArrangement move.l #$00180013,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAPickArrangement ENDIF ; ; pascal ComponentResult NACopyrightDialog(NoteAllocator na, PicHandle p, StringPtr author, StringPtr copyright, StringPtr other, StringPtr title, ModalFilterUPP filterProc, long refCon) ; IF ¬ GENERATINGCFM THEN Macro _NACopyrightDialog move.l #$001C001C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NACopyrightDialog ENDIF ENDIF IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN ; ; * Note Allocator interior views ; NAStatPiece RECORD 0 clientName ds Str31 ; offset: $0 (0) synthesizerName ds Str31 ; offset: $20 (32) part ds.l 1 ; offset: $40 (64) midiChannel ds.l 1 ; offset: $44 (68) polyphony ds.l 1 ; offset: $48 (72) valid ds.l 1 ; offset: $4C (76) sizeof EQU * ; size: $50 (80) ENDR NAStat RECORD 0 pieceCount ds.l 1 ; offset: $0 (0) piece ds.b 64 * NAStatPiece.sizeof ; offset: $4 (4) sizeof EQU * ; size: $1404 (5124) ENDR ; ; pascal ComponentResult NAGetStatusBlock(NoteAllocator na, NAStat *stat) ; IF ¬ GENERATINGCFM THEN Macro _NAGetStatusBlock move.l #$00040014,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION NAGetStatusBlock ENDIF ; ;-------------------------- ; Types ;-------------------------- ; kTuneQueueDepth EQU 8 ; Deepest you can queue tune segments TuneStatus RECORD 0 tune ds.l 1 ; offset: $0 (0) ; currently playing tune tunePtr ds.l 1 ; offset: $4 (4) ; position within currently playing piece time ds.l 1 ; offset: $8 (8) ; current tune time queueCount ds.w 1 ; offset: $C (12) ; how many pieces queued up? queueSpots ds.w 1 ; offset: $E (14) ; How many more tunepieces can be queued queueTime ds.l 1 ; offset: $10 (16) ; How much time is queued up? (can be very inaccurate) reserved ds.l 3 ; offset: $14 (20) sizeof EQU * ; size: $20 (32) ENDR kStopTuneFade EQU 1 ; do a quick, synchronous fadeout kStopTuneSustain EQU 2 ; don't silece notes kStopTuneInstant EQU 4 ; silence notes fast (else, decay them) kStopTuneReleaseChannels EQU 8 ; afterwards, let the channels go kTuneSelect EQU 3 kTuneSetHeaderSelect EQU 4 kTuneGetTimeBaseSelect EQU 5 kTuneSetTimeScaleSelect EQU 6 kTuneGetTimeScaleSelect EQU 7 kTuneGetIndexedNoteChannelSelect EQU 8 kTuneDummy EQU 9 kTuneQueueSelect EQU 10 kTuneInstantSelect EQU 11 kTuneGetStatusSelect EQU 12 kTuneStopSelect EQU 13 kTuneResumeSelect EQU 14 kTuneFlushSelect EQU 15 kTuneSetVolumeSelect EQU 16 kTuneGetVolumeSelect EQU 17 kTunePrerollSelect EQU 18 kTuneUnrollSelect EQU 19 kTuneLastSelector EQU 20 ; typedef ComponentInstance TunePlayer kMaxTunePlayerParts EQU 32 kTunePlayerType EQU 'tune' ; ;-------------------------- ; Prototypes ;-------------------------- ; ; ; pascal ComponentResult TuneSetHeader(TunePlayer tp, unsigned long *header) ; IF ¬ GENERATINGCFM THEN Macro _TuneSetHeader move.l #$00040004,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneSetHeader ENDIF ; ; pascal ComponentResult TuneGetTimeBase(TunePlayer tp, TimeBase *tb) ; IF ¬ GENERATINGCFM THEN Macro _TuneGetTimeBase move.l #$00040005,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneGetTimeBase ENDIF ; ; pascal ComponentResult TuneSetTimeScale(TunePlayer tp, TimeScale scale) ; IF ¬ GENERATINGCFM THEN Macro _TuneSetTimeScale move.l #$00040006,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneSetTimeScale ENDIF ; ; pascal ComponentResult TuneGetTimeScale(TunePlayer tp, TimeScale *scale) ; IF ¬ GENERATINGCFM THEN Macro _TuneGetTimeScale move.l #$00040007,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneGetTimeScale ENDIF ; ; pascal ComponentResult TuneGetIndexedNoteChannel(TunePlayer tp, long i, NoteChannel *nc) ; IF ¬ GENERATINGCFM THEN Macro _TuneGetIndexedNoteChannel move.l #$00080008,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneGetIndexedNoteChannel ENDIF ; Values for when to start. kTuneStartNow EQU 1 ; start after buffer is implied kTuneDontClipNotes EQU 2 ; allow notes to finish their durations outside sample kTuneExcludeEdgeNotes EQU 4 ; dont play notes that start at end of tune kTuneStartNewMaster EQU 16384 ; ; pascal ComponentResult TuneQueue(TunePlayer tp, unsigned long *tune, Fixed tuneRate, unsigned long tuneStartPosition, unsigned long tuneStopPosition, unsigned long queueFlags, TuneCallBackUPP callBackProc, long refCon) ; IF ¬ GENERATINGCFM THEN Macro _TuneQueue move.l #$001C000A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneQueue ENDIF ; ; pascal ComponentResult TuneInstant(TunePlayer tp, unsigned long *tune, long tunePosition) ; IF ¬ GENERATINGCFM THEN Macro _TuneInstant move.l #$0008000B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneInstant ENDIF ; ; pascal ComponentResult TuneGetStatus(TunePlayer tp, TuneStatus *status) ; IF ¬ GENERATINGCFM THEN Macro _TuneGetStatus move.l #$0004000C,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneGetStatus ENDIF ; Values for when to start. kStopSustain EQU 1 ; Leaves notes playing, not silent kStopFadeout EQU 2 ; Does a synchronous fade-out ; ; pascal ComponentResult TuneStop(TunePlayer tp, long stopFlags) ; IF ¬ GENERATINGCFM THEN Macro _TuneStop move.l #$0004000D,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneStop ENDIF ; ; pascal ComponentResult TuneResume(TunePlayer tp) ; IF ¬ GENERATINGCFM THEN Macro _TuneResume move.l #$0000000E,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneResume ENDIF ; ; pascal ComponentResult TuneFlush(TunePlayer tp) ; IF ¬ GENERATINGCFM THEN Macro _TuneFlush move.l #$0000000F,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneFlush ENDIF ; ; pascal ComponentResult TuneSetVolume(TunePlayer tp, Fixed volume) ; IF ¬ GENERATINGCFM THEN Macro _TuneSetVolume move.l #$00040010,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneSetVolume ENDIF ; ; pascal ComponentResult TuneGetVolume(TunePlayer tp) ; IF ¬ GENERATINGCFM THEN Macro _TuneGetVolume move.l #$00000011,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneGetVolume ENDIF ; ; pascal ComponentResult TunePreroll(TunePlayer tp) ; IF ¬ GENERATINGCFM THEN Macro _TunePreroll move.l #$00000012,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TunePreroll ENDIF ; ; pascal ComponentResult TuneUnroll(TunePlayer tp) ; IF ¬ GENERATINGCFM THEN Macro _TuneUnroll move.l #$00000013,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TuneUnroll ENDIF ; typedef unsigned long MusicOpWord ; typedef unsigned long * MusicOpWordPtr ; ; QuickTime Music Track Event Formats: ; ; At this time, QuickTime music tracks support 5 different event types -- REST events, ; short NOTE events, short CONTROL events, short GENERAL events, Long NOTE events, ; long CONTROL events, and variable GENERAL events. ; ; • REST Event (4 bytes/event): ; ; (0 0 0) (5-bit UNUSED) (24-bit Rest Duration) ; ; • Short NOTE Events (4 bytes/event): ; ; (0 0 1) (5-bit Instrument) (6-bit Pitch) (7-bit Volume) (11-bit Duration) ; ; where: Pitch is offset by 32 (Actual pitch = pitch field + 32) ; ; • Short CONTROL Events (4 bytes/event): ; ; (0 1 0) (5-bit Instrument) (8-bit Controller) (1-bit UNUSED) (1-bit Sign) (7-bit MSB) (7-bit LSB) ; ( or 15-bit Signed Value) ; • Short GENERAL Event (4 bytes/event): ; ; (0 1 1) (1-bit UNUSED) (12-bit Sub-Type) (16-bit Value) ; ; • Long NOTE Events (8 bytes/event): ; ; (1 0 0 1) (12-bit Instrument) (1-bit UNUSED) (7-bit Pitch) (1-bit UNUSED) (7-bit Volume) ; (1 0) (8-bit UNUSED) (22-bit Duration) ; ; • Long CONTROL Event (8 bytes/event): ; ; (1 0 1 0) (12-bit Instrument) (16-bit Value MSB) ; (1 0) (14-bit Controller) (16-bit Value LSB) ; ; • Long KNOB Event (8 bytes/event): ; ; (1 0 1 1) (12-bit Sub-Type) (16-bit Value MSB) ; (1 0) (14-bit KNOB) (16-bit Value LSB) ; ; • Variable GENERAL Length Events (N bytes/event): ; ; (1 1 1 1) (12-bit Sub-Type) (16-bit Length) ; : ; (32-bit Data values) ; : ; (1 1) (14-bit UNUSED) (16-bit Length) ; ; where: Length field is the number of LONG words in the record. ; Lengths include the first and last long words (Minimum length = 2) ; ; The following event type values have not been used yet and are reserved for ; future expansion: ; ; • (1 0 0 0) (8 bytes/event) ; • (1 1 0 0) (N bytes/event) ; • (1 1 0 1) (N bytes/event) ; • (1 1 1 0) (N bytes/event) ; ; For all events, the following generalizations apply: ; ; - All duration values are specified in Millisecond units. ; - Pitch values are intended to map directly to the MIDI key numbers. ; - Controllers from 0 to 127 correspond to the standard MIDI controllers. ; Controllers greater than 127 correspond to other controls (i.e., Pitch Bend, ; Key Pressure, and Channel Pressure). ; ; Defines for the implemented music event data fields kRestEventType EQU $00000000 ; lower 3-bits kNoteEventType EQU $00000001 ; lower 3-bits kControlEventType EQU $00000002 ; lower 3-bits kMarkerEventType EQU $00000003 ; lower 3-bits kUndefined1EventType EQU $00000008 ; 4-bits kXNoteEventType EQU $00000009 ; 4-bits kXControlEventType EQU $0000000A ; 4-bits kKnobEventType EQU $0000000B ; 4-bits kUndefined2EventType EQU $0000000C ; 4-bits kUndefined3EventType EQU $0000000D ; 4-bits kUndefined4EventType EQU $0000000E ; 4-bits kGeneralEventType EQU $0000000F ; 4-bits kXEventLengthBits EQU $00000002 ; 2 bits: indicates 8-byte event record kGeneralEventLengthBits EQU $00000003 ; 2 bits: indicates variable length event record kEventLen EQU 1 ; length of events in long words kXEventLen EQU 2 kRestEventLen EQU 1 ; length of events in long words kNoteEventLen EQU 1 kControlEventLen EQU 1 kMarkerEventLen EQU 1 kXNoteEventLen EQU 2 kXControlEventLen EQU 2 kGeneralEventLen EQU 2 ; 2 or more, however ; Universal Event Defines kEventLengthFieldPos EQU 30 ; by looking at these two bits of the 1st or last word kEventLengthFieldWidth EQU 2 ; of an event you can determine the event length ; length field: 0 & 1 => 1 long; 2 => 2 longs; 3 => variable length kEventTypeFieldPos EQU 29 ; event type field for short events kEventTypeFieldWidth EQU 3 ; short type is 3 bits kXEventTypeFieldPos EQU 28 ; event type field for extended events kXEventTypeFieldWidth EQU 4 ; extended type is 4 bits kEventInstrumentFieldPos EQU 24 kEventInstrumentFieldWidth EQU 5 kXEventInstrumentFieldPos EQU 16 ; in the 1st long word kXEventInstrumentFieldWidth EQU 12 ; Rest Events kRestEventDurationFieldPos EQU 0 kRestEventDurationFieldWidth EQU 24 kRestEventDurationMax EQU $00FFFFFF ; Note Events kNoteEventPitchFieldPos EQU 18 kNoteEventPitchFieldWidth EQU 6 kNoteEventPitchOffset EQU 32 ; add to value in pitch field to get actual pitch kNoteEventVolumeFieldPos EQU 11 kNoteEventVolumeFieldWidth EQU 7 kNoteEventVolumeOffset EQU 0 ; add to value in volume field to get actual volume kNoteEventDurationFieldPos EQU 0 kNoteEventDurationFieldWidth EQU 11 kNoteEventDurationMax EQU $000007FF kXNoteEventPitchFieldPos EQU 0 ; in the 1st long word kXNoteEventPitchFieldWidth EQU 16 kXNoteEventDurationFieldPos EQU 0 ; in the 2nd long word kXNoteEventDurationFieldWidth EQU 22 kXNoteEventDurationMax EQU $003FFFFF kXNoteEventVolumeFieldPos EQU 22 ; in the 2nd long word kXNoteEventVolumeFieldWidth EQU 7 ; Control Events kControlEventControllerFieldPos EQU 16 kControlEventControllerFieldWidth EQU 8 kControlEventValueFieldPos EQU 0 kControlEventValueFieldWidth EQU 16 kXControlEventControllerFieldPos EQU 0 ; in the 2nd long word kXControlEventControllerFieldWidth EQU 16 kXControlEventValueFieldPos EQU 0 ; in the 1st long word kXControlEventValueFieldWidth EQU 16 ; Knob Events kKnobEventValueHighFieldPos EQU 0 ; 1st long word kKnobEventValueHighFieldWidth EQU 16 kKnobEventKnobFieldPos EQU 16 ; 2nd long word kKnobEventKnobFieldWidth EQU 14 kKnobEventValueLowFieldPos EQU 0 ; 2nd long word kKnobEventValueLowFieldWidth EQU 16 ; Marker Events kMarkerEventSubtypeFieldPos EQU 16 kMarkerEventSubtypeFieldWidth EQU 8 kMarkerEventValueFieldPos EQU 0 kMarkerEventValueFieldWidth EQU 16 ; General Events kGeneralEventSubtypeFieldPos EQU 16 ; in the last long word kGeneralEventSubtypeFieldWidth EQU 14 kGeneralEventLengthFieldPos EQU 0 ; in the 1st & last long words kGeneralEventLengthFieldWidth EQU 16 ; General Event Defined Types kGeneralEventNoteRequest EQU 1 ; Encapsulates NoteRequest data structure kGeneralEventInstrument EQU 2 ; Encapsulates poly, typical poly, followed by InstrumentData record kGeneralEventFlatInstrument EQU 3 ; Encapsulates poly, typical poly, followed by FlatInstrument record kGeneralEventPartName EQU 4 ; Brackets 2 longs follwed by a pascal string (padded to long alignment) kGeneralEventPartKey EQU 5 ; Brackets 2 longs TCSourceRefNameType EQU 'name' tcDropFrame EQU $01 tc24HourMax EQU $02 tcNegTimesOK EQU $04 tcCounter EQU $08 TimeCodeDef RECORD 0 flags ds.l 1 ; offset: $0 (0) ; drop-frame, etc. fTimeScale ds.l 1 ; offset: $4 (4) ; time scale of frameDuration (eg. 2997) frameDuration ds.l 1 ; offset: $8 (8) ; duration of each frame (eg. 100) numFrames ds.b 1 ; offset: $C (12) ; frames/sec for timecode (eg. 30) OR frames/tick for counter mode padding ds.b 1 ; offset: $D (13) ; unused padding byte sizeof EQU * ; size: $E (14) ENDR tctNegFlag EQU $80 ; negative bit is in minutes TimeCodeTime RECORD 0 hours ds.b 1 ; offset: $0 (0) minutes ds.b 1 ; offset: $1 (1) seconds ds.b 1 ; offset: $2 (2) frames ds.b 1 ; offset: $3 (3) sizeof EQU * ; size: $4 (4) ENDR TimeCodeCounter RECORD 0 counter ds.l 1 ; offset: $0 (0) sizeof EQU * ; size: $4 (4) ENDR TimeCodeDescription RECORD 0 descSize ds.l 1 ; offset: $0 (0) ; standard sample description header dataFormat ds.l 1 ; offset: $4 (4) resvd1 ds.l 1 ; offset: $8 (8) resvd2 ds.w 1 ; offset: $C (12) dataRefIndex ds.w 1 ; offset: $E (14) flags ds.l 1 ; offset: $10 (16) ; timecode specific stuff timeCodeDef ds TimeCodeDef ; offset: $14 (20) srcRef ds.l 1 ; offset: $22 (34) <-- really an array of length one sizeof EQU * ; size: $26 (38) ENDR ; typedef struct TimeCodeDescription * TimeCodeDescriptionPtr ; typedef TimeCodeDescriptionPtr * TimeCodeDescriptionHandle tcdfShowTimeCode EQU $01 kTCGetCurrentTimeCodeSelect EQU 257 kTCGetTimeCodeAtTimeSelect EQU 258 kTCTimeCodeToStringSelect EQU 259 kTCTimeCodeToFrameNumberSelect EQU 260 kTCFrameNumberToTimeCodeSelect EQU 261 kTCGetSourceRefSelect EQU 262 kTCSetSourceRefSelect EQU 263 kTCSetTimeCodeFlagsSelect EQU 264 kTCGetTimeCodeFlagsSelect EQU 265 kTCSetDisplayOptionsSelect EQU 266 kTCGetDisplayOptionsSelect EQU 267 ; ; pascal HandlerError TCGetCurrentTimeCode(MediaHandler mh, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, UserData *srcRefH) ; IF ¬ GENERATINGCFM THEN Macro _TCGetCurrentTimeCode move.l #$00100101,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCGetCurrentTimeCode ENDIF ; ; pascal HandlerError TCGetTimeCodeAtTime(MediaHandler mh, TimeValue mediaTime, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcdata, UserData *srcRefH) ; IF ¬ GENERATINGCFM THEN Macro _TCGetTimeCodeAtTime move.l #$00140102,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCGetTimeCodeAtTime ENDIF ; ; pascal HandlerError TCTimeCodeToFrameNumber(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, long *frameNumber) ; IF ¬ GENERATINGCFM THEN Macro _TCTimeCodeToFrameNumber move.l #$000C0104,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCTimeCodeToFrameNumber ENDIF ; ; pascal HandlerError TCFrameNumberToTimeCode(MediaHandler mh, long frameNumber, TimeCodeDef *tcdef, TimeCodeRecord *tcrec) ; IF ¬ GENERATINGCFM THEN Macro _TCFrameNumberToTimeCode move.l #$000C0105,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCFrameNumberToTimeCode ENDIF ; ; pascal HandlerError TCTimeCodeToString(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, StringPtr tcStr) ; IF ¬ GENERATINGCFM THEN Macro _TCTimeCodeToString move.l #$000C0103,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCTimeCodeToString ENDIF ; ; pascal HandlerError TCGetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData *srefH) ; IF ¬ GENERATINGCFM THEN Macro _TCGetSourceRef move.l #$00080106,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCGetSourceRef ENDIF ; ; pascal HandlerError TCSetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData srefH) ; IF ¬ GENERATINGCFM THEN Macro _TCSetSourceRef move.l #$00080107,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCSetSourceRef ENDIF ; ; pascal HandlerError TCSetTimeCodeFlags(MediaHandler mh, long flags, long flagsMask) ; IF ¬ GENERATINGCFM THEN Macro _TCSetTimeCodeFlags move.l #$00080108,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCSetTimeCodeFlags ENDIF ; ; pascal HandlerError TCGetTimeCodeFlags(MediaHandler mh, long *flags) ; IF ¬ GENERATINGCFM THEN Macro _TCGetTimeCodeFlags move.l #$00040109,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCGetTimeCodeFlags ENDIF ; ; pascal HandlerError TCSetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions) ; IF ¬ GENERATINGCFM THEN Macro _TCSetDisplayOptions move.l #$0004010A,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCSetDisplayOptions ENDIF ; ; pascal HandlerError TCGetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions) ; IF ¬ GENERATINGCFM THEN Macro _TCGetDisplayOptions move.l #$0004010B,-(sp) moveq #0,D0 dc.w $A82A EndM ELSE IMPORT_CFM_FUNCTION TCGetDisplayOptions ENDIF ; UPP call backs ENDIF ENDIF ; __QUICKTIMECOMPONENTS__